基础

安装 :
windows :https://jingyan.baidu.com/article/90808022239932fd91c80f1a.html
linux:https://www.cnblogs.com/zdd-java/p/10288734.html
mac:https://www.cnblogs.com/taostaryu/p/9481749.html

数据类型及常用方法:https://blog.csdn.net/Stefway/article/details/51834670
命令大全:http://doc.redisfans.com/
配置文件 redis.conf 一般在安装目录下

持久化

1:RDB 一种全量快照备份的策略,新快照覆盖老快照

默认的 6.0.5
image.png
保存方式
save 同步保存 阻塞
image.png
bgsave 异步保存 非阻塞(?fork子线程时也会发生阻塞)
image.png
两者对比
image.png

2:AOF 一种保存全量写命令的策略

开启aof

appendonly yes 开启AOF
appendfilename “appendonly.aof” 保存文件名
appendfsync everysec 保存策略,,每秒一次
no-appendfsync-on-rewrite no 这个参数用于处理 bgrewriteaof重写aof时,与AOF 写磁盘造成的磁盘阻塞, 设置成no则会 相当于暂时吧 appendfsync 设置成no,此时所有的客户端命令只会写入缓冲区注意,此时并没有落入磁盘,如果此时redis挂了,这部分的数据会丢失

auto-aof-rewrite-percentage 100 bgrewriteaof 相关配置,此次文件增长比上次增加的百分比,达到这个百分比则触发重写
auto-aof-rewrite-min-size 64mb 触发重写的最小大小
aof-load-truncated yes 恢复数据时,忽略错误指令,如果是no,碰上错误指令会报错
aof-use-rdb-preamble yes aof/rdb混合持久模式,,也就是 bgrewriteaof 这能解决aof文件越来越大的问题

可以理解为,RDB 面向结果,AOF 面向过程

image.png
但是面向过程会带来的问题是文件越来越大(重服务开始创建文件),另一个解决方案

bgrewriteaof ====可以理解为aof跟rbd的合体,

AOF ——> 文件太大了-> bgrewriteaof 备份全量数据 -> aof
image.png

RDB AOF 同时存在时回复过程,aof优先,如果不存在则加载rdb
image.png

观察一下 aof文件

image.png
再添加几个键
image.png

bgrewriteaof
所有之前的数据被替换成快照了
image.png
rdb文件
image.png