RDB相关配置
- 在自己
/usr/local/bin
目录下新建目录,并复制一份redis原始配置文件(可供我们“肆意”修改) - (必选)我们重点要修改redis日志目录文件,rdb文件存放目录(这两个地方为空的话,会导致
shutdown
操作都失败) - (可选)最后我们可以修改save命令,比如修改为save 60 5进行测试,看它是否60秒5次操作才会触发rdb文件生成~~~
下面是详细操作步骤:
(必选)修改redis日志目录文件,rdb文件存放目录(配置文件过长,我们可以用
:/keyword
来搜索关键词)
(可选)可以修改save命令,比如修改为save 60 5进行测试
注意事项
- 注意:如果报权限不够,记得chmod 777!!!
chmod 777 redis
cd redis
chmod 777 log
chmod 777 data
cd log
chmod 777 redis.log
RDB触发条件
- 手动触发:save/bgsave
- 自动触发:满足redis配置文件中的自动触发条件(比如我们设置的:每60s有5次更新就会触发RDB文件生成)
- 自动触发:每次关闭redis也会自动触发RDB
- 自动触发:执行flushall命令也会自动触发RDB
(个人感觉和word自动保存功能有相似的地方)
手动触发save/bgsave区别
Redis提供了两个命令来实现RDB文件的生成,分别是SAVE和BGSAVE。
其中SAVE命令为阻塞Redis服务器正常的进程,直到RDB文件创建结束为止,在此期间,Redis服务器不会处理任何请求,此时客户端发送的所有请求都会阻塞,知道服务器开始处理请求;
而BGSAVE命令则会fork出一个子进程去创建RDB文件,父进程继续处理请求,不会影响Redis服务器处理正常的请求,但此时服务器会拒绝客户端发送的SAVE和BGSAVE请求,避免重复执行生成和资源竞争
自动触发演示
每60s有5次更新就会触发RDB文件生成演示(此时全程没有关闭redis)
关闭redis触发RDB演示
执行flushall自动触发RDB