redis -持久化功能

 

持久化功能

 

redis(nosql产品)为了内部数据的安全考虑,会把本身的数据以文件形式保存到硬盘中一份,在服务器重启之后会自动把硬盘的数据恢复到内存(redis)的里边。

数据保存到硬盘的过程就称为"持久化"效果。

1. snap shotting快照持久化

该持久化默认开启,一次性redis全部的数据保存一份存储在硬盘中,如果数据非常多(10-20G)不适合频繁进行该持久化操作。

 

 

save 900 1 #900 秒内如果超过 个 key 被修改,则发起快照保存

save 300 10     #300秒超过10key被修改,发起快照

save 60 10000   #60秒超过10000key被修改,发起快照

 

上述三个save备份的考虑:

数据变化快的时候,备份频率就快高一些[数据相对安全、服务器负载高些]

数据变化慢,备份的频率就低一些[服务器负载也低]

 

 

1.1 手动发起快照持久化

手动发起一次快照持久化:

> ./redis-cli  [-h 主机名ip  -p 端口号码]  bgsave

  (-h  -p  参数可以给其他服务器做快照持久化)

 

 

2. append only file (AOF持久化)

本质:把用户执行的每个"写"指令(添加、修改、删除)都备份到文件中,还原数据的时候就是执行具体写指令而已(与mysql的备份还原类似)

  

  

  

 

2.1开启aof持久化

(第一次开启该aof持久化会清空redis的全部数据):

  

为了修改的配置文件生效,需要重启服务:

  

  

  

 

  

 

2.2. 该aof持久化备份频率

  

 

# appendfsync always   //每次收到写命令就立即强制写入磁盘,最慢的,但是保证完全的持久化,不推荐使用,【数据最安全,服务器性能最低】

appendfsync everysec   //每秒钟强制写入磁盘一次,在性能和持久化方面做了很好的折中,推荐 【数据相对安全,服务器性能折中】

# appendfsync no   //完全依赖 os,性能最好,持久化没保证

          【数据安全性低,服务器性能最高】

  

2.3 为aof备份文件做优化压缩处理

例如:可以把多个incr指令设置为一个set指令。

  

  

 

redis相关操作指令:

 

posted @ 2018-04-01 07:07  孙中明  阅读(107)  评论(0编辑  收藏  举报