redis RDB AOF数据持久化

redis RDB持久化[手工持久化]:

RDB持久化在指定的时间间隔内生成数据集的时间点快照[point-in-time snapshot]
优点: 速度快,适合于备份
缺点: 会有数据丢失

#正常没有做持久化时
[root@k8s-master1 6379]# redis-cli -h 10.0.0.63 -a 123
10.0.0.63:6379> set name timo
OK
10.0.0.63:6379> exit
[root@k8s-master1 6379]# redis-cli -h 10.0.0.63 -a 123
10.0.0.63:6379> get name
"timo"
没有shutdown时数据还在,现在执行shutdown
然后重新启动redis
10.0.0.63:6379> shutdown
not connected> exit
[root@k8s-master1 6379]# redis-server /nosql/redis/6379/redis.conf

登录进去后,查询设置的 timo 键值:
10.0.0.63:6379> get name
(nil)
此时为空。


#手工持久化[RDB持久化]:
[root@k8s-master1 6379]# redis-cli -h 10.0.0.63 -a 123
10.0.0.63:6379> set name01 timo
OK
10.0.0.63:6379> save
OK
10.0.0.63:6379> shutdown   #关闭redis
not connected> exit

启动后查询:
[root@k8s-master1 6379]# redis-server /nosql/redis/6379/redis.conf
[root@k8s-master1 6379]# redis-cli -h 10.0.0.63 -a 123
10.0.0.63:6379> get name01
"timo"
此时就是做了手工持久化,使得数据保存了,在重启后依然存在。
我们知道没有持久化的数据都在内存中,一旦重启内存就被释放了,此时只有手工持久化才行。 save就是手工持久化。

redis RDB持久化条件配置【适合用于备份】redis rdb持久化策略

手工持久化可以设置哪些数据会被持久化,设置条件后即使我们不手工敲save 系统也会自动帮我们做持久化操作。

rdb持久化也叫快照持久化,他会持久化当前内存状态。
优点:数据持久化快。 非常适合用于备份。

RDB持久化快照条件配置
在我们不用敲save主动进行持久化的时候,我们还可以使用一些条件进行自动持久化,比如设置 100秒保存一次。
redis.conf 添加条件如下:

save 900 1
save 300 10
save 60 10000


配置分别表示:
900秒(15分钟)内有1个更改
300秒(5分钟)内有10个更改
60秒内有10000个更改

redis AOF持久化

记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集
AOF文件中的命令全部以redis协议格式来保存,新命令追加到文件末尾。
优点: 可以最大程度保证数据不会丢失
缺点:日志记录的量级会比较大

RDB持久化只会保存最后一次的操作,而AOF会保存所有的操作。它的量级会比RDB持久化日志更大,类似于mysql的binglog

redis AOF持久化配置

重要配置:
appendonly yes      #是否打开持久化功能
appendfsync always  #是否开启持久化条件  always[每次修改都持久化]  everysec[每秒持久化一次]  一般设置everysec

注意: redis集群中,这个功能必须要开启。
配置文件:
daemonize yes
port 6379
logfile /nosql/redis/6379/redis.log
dir /nosql/redis/6379
dbfilename dump.rdb
#protected-mode no
bind 10.0.0.63
requirepass 123
save 900 1
save 300 10
save 60 10000

appendonly yes
appendfsync everysec

面试技巧:

redis的持久化方式有哪些,有什么区别?
redis有两种持久化方式,分别是 RDB持久化  AOF持久化
RDB持久化是以操作次数作为条件保存数据的他是基于快照进行持久化的,速度更快,主从复制也依赖该功能[速度快]
AOF持久化是指定每次修改追加方式进行数据持久化操作。可以最大程度保证redis数据安全 [更安全]

redis数据类型:

string: 字符类型
Hash:  字典类型
List:  列表
set:   集合
Sorted set:  有序集合
原文地址:https://www.cnblogs.com/superlinux/p/13695823.html