redis 持久化
redis持久化之RDB
创建配置文件,rdbredis.conf
[root@10 redis-4.0.10]# touch rdbredis
写入一下配置
daemonize yes port 6379 logfile /data/6379/redis.log dir /data/6379 #定义持久化文件存储位置 dbfilename dbmp.rdb #rdb持久化文件 bind 10.0.0.21 127.0.0.1 #redis绑定地址 requirepass qwert #redis登录密码 save 900 1 #rdb机制 每900秒 有1个修改记录 save 300 10 #每300秒 10个修改记录 save 60 10000 #每60秒内 10000修改记录
创建目录
[root@10 redis-4.0.10]# mkdir -p /data/6379
启动redis
[root@10 redis-4.0.10]# redis-server rdbredis.conf
创建数据,查看data/6379/
127.0.0.1:6379> set name hehe OK 127.0.0.1:6379> SAVE OK
[root@10 6379]# ll total 8 -rw-r--r-- 1 root root 109 Mar 5 05:44 dbmp.rdb -rw-r--r-- 1 root root 2779 Mar 5 05:44 redis.log
数据会保存在dbmp.rdb文件中,退出后数据还会存在
redis持久化之AOF
AOF(append-only log file)
记录服务器执行的所有变更操作命令(例如set del等),并在服务器启动时,通过重新执行这些命令来还原数据集
AOF 文件中的命令全部以redis协议的格式保存,新命令追加到文件末尾。
优点:最大程序保证数据不丢
缺点:日志记录非常大
参数
复制代码
AOF持久化配置,两条参数
appendonly yes
appendfsync always 总是修改类的操作
everysec 每秒做一次持久化
no 依赖于系统自带的缓存大小机制
创建配置文件
daemonize yes port 6379 logfile /data/6379/redis.log dir /data/6379 dbfilename dbmp.rdb requirepass qwert appendonly yes #开启aof持久化的参数 appendfsync everysec #每秒进行一个aof持久化
启动redis
[root@10 redis-4.0.10]# redis-server aofredis.conf
检查redis数据目录/data/6379/是否产生了aof文件
[root@10 6379]# ll total 4 -rw-r--r-- 1 root root 0 Mar 5 06:08 appendonly.aof -rw-r--r-- 1 root root 1366 Mar 5 06:08 redis.log
redis不重启,切换RDB备份到AOF备份
确保redis版本在2.2以上
[root@10 redis-4.0.10]# redis-server -v
通过config set命令,达到不重启redis服务,从RDB持久化切换为AOF
rdbredis.conf服务端配置文件
daemonize yes port 6379 logfile /data/6379/redis.log dir /data/6379 dbfilename dbmp.rdb save 900 1 #rdb机制 每900秒 有1个修改记录 save 300 10 #每300秒 10个修改记录 save 60 10000 #每60秒内 10000修改记录
启动redis服务端
redis-server rdbredis.conf
登录redis-cli插入数据,手动持久化
127.0.0.1:6379> set name chaoge OK 127.0.0.1:6379> set age 18 OK 127.0.0.1:6379> set addr shahe OK 127.0.0.1:6379> save OK
检查RDB文件
[root@10/data]#ls 6379/ dbmp.rdb redis.log
备份这个rdb文件,保证数据安全
[root@10 /data/6379 ]#cp dbmp.rdb /opt/
执行命令,开启AOF持久化
127.0.0.1:6379> CONFIG set appendonly yes #开启AOF功能 OK 127.0.0.1:6379> CONFIG SET save "" #关闭RDB功能 OK
确保数据库的key数量正确
127.0.0.1:6379> keys * 1) "addr" 2) "age" 3) "name"
此时RDB已经正确切换AOF,注意还得修改redis.conf添加AOF设置,不然重启后,通过config set的配置将丢失
[root@10 redis-4.0.10]# vim rdbredis.conf
daemonize yes port 6379 logfile /data/6379/redis.log dir /data/6379 dbfilename dbmp.rdb requirepass qwert appendonly yes #开启aof持久化的参数 appendfsync everysec #每秒进行一个aof持久化