Redis数据持久化存储
1. redis的数据持久化
1.1 RDB持久化
rdb持久化模式,是基于内存数据快照的方式,通过save指令,强制快照数据到本地,存储为一个二进制文件
-
准备配置文件,redis-rdb.conf
daemonize yes port 6379 logfile /data/6379/redis.log dir /data/6379 #定义持久化文件存储位置,此文件夹需要手动创建 dbfilename dbmp.rdb #rdb持久化文件 bind 127.0.0.1 #redis绑定地址 requirepass redhat #redis登录密码 save 900 1 #rdb机制 每900秒 有1个修改记录就持久化存储 save 300 10 #每300秒 10个修改记录 save 60 10000 #每60秒内 10000修改记录 -
启动redis服务端
# 先把已有的redis进程干掉,再启动 redis-server redis-rdb.conf -
登录redis,写入数据,手动执行save触发持久化,会生成一个二进制的数据文件 dbmp.rdb
1.2 AOF持久化
记录服务器执行的所有变更操作命令(例如set del等),并在服务器启动时,通过重新执行这些命令来还原数据集
-
准备配置文件,redis-aof.conf
daemonize yes port 6379 logfile /data/6379/redis.log dir /data/6379 appendonly yes appendfsync everysec # 下面是AOF持久化配置的两条参数解释 ----------------------------------- appendonly yes appendfsync always 总是修改类的操作 everysec 每秒做一次持久化 no 依赖于系统自带的缓存大小机制 -
启动redis服务端
redis-server redis-aof.conf -
写入数据,检查redis数据目录/data/6379/是否产生了aof文件
[root@web02 6379]# ls appendonly.aof dbmp.rdb redis.log
2. redis 持久化方式有哪些?有什么区别?
rdb:基于快照的持久化,速度更快,一般用作备份,主从复制也是依赖于rdb持久化功能
aof:以追加的方式记录redis操作日志的文件。可以最大程度的保证redis数据安全,类似于mysql的binlog
3. redis在不重启的状态下,如何将rdb持久化切换到aof持久化中
1.准备一个支持rdb的数据库 ,启动rdb方式的redis,准备一个新的配置文件,支持rdb
redis-new-rdb.conf 配置内容如下:
------------------------------
daemonize yes
port 6379
logfile /opt/6379/redis.log
dir /opt/6379
dbfilename dbmp.rdb
save 900 1
save 300 10
save 60 10000
------------------------------
2.通过命令切换为aof模式,仅仅是临时生效,切换到aof,切换后还得修改配置文件
127.0.0.1:6379> CONFIG set appendonly yes #开启AOF功能
OK
127.0.0.1:6379> CONFIG SET save "" #关闭RDB功能
OK
3.还得修改redis的配置文件,让他下次重启也是aof
修改redis-new-rdb.conf 为如下配置,以后重启也是aof了
--------------------------
daemonize yes
port 6379
logfile /opt/6379/redis.log
dir /opt/6379
appendonly yes
appendfsync everysec
---------------------------
重启redis数据库
4.至此redis已经切换到 aof模式下了

浙公网安备 33010602011771号