1. redis持久化
1.1. rdb快照持久化
rdb的工作原理:每隔N分钟或N次写操作后,从内存dump数据形成rdb文件,压缩放在备份目录,设置配置文件参数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| vim /usr/local/redis/ redis.conf
save 900 1 save 300 1000 save 60 10000 (这3个选项都屏蔽,则rdb禁用)
stop-writes-on-bgsave-error yes rdbcompression yes Rdbchecksum yes
dbfilename dump.rdb dir /usr/local/redis/data
/usr/local/redis/bin/redis-benchmark
|
rdb的缺陷:在2个保存点之间断电,将会丢失1-N分钟的数据
1.2. aof日志持久化
工作原理:redis主进程 –> 后台日志进程 –> aof文件
设置配置文件参数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| vim /usr/local/redis/ redis.conf
appendonly no appendfilename "appendonly.aof"
appendfsync everysec 上面方案选择一种,一般选择everysec
appendfsync no
no-appendfsync-on-rewrite yes auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb
|
注意:如果需要持久化,一般推荐rdb和aof同时开启,同时开启后redis进程启动优先选择aof恢复数据。rdb恢复速度快。
在dump rdb过程中,aof如果停止同步,会不会丢失? 不会,所有的操作缓存在内存的队列里,dump完成后统一操作.
aof重写是指什么? aof重写是指把内存中的数据,逆化成命令,写入到.aof日志里,以解决 aof日志过大的问题,手动重写aof命令:bgrewriteaof
2. 导入和导出数据库
1 2 3 4 5 6 7 8 9 10 11
| (1) 安装redis-dump工具 yum install ruby rubygems ruby-devel gem sources --remove http://ruby.taobao.org/ gem sources -a https://ruby.taobao.org/ gem install redis-dump -V
(2) 导出redis数据 redis-dump -u 127.0.0.1:6379 > test.json
(3) 导入redis数据 < test.json redis-load
|