云迈博客

您现在的位置是:首页 > 灌水专栏 > 正文

灌水专栏

redis持久化AOF与RDB配置

zero2022-02-28灌水专栏189
修改redis.conf配置文件自动触发保存#save设置数据保存到数据文件中的save规则save9001:表示900秒内如果至少有1个key的值变化,则保存sa
  1. 修改 redis.conf 配置文件 自动触发保存
# save 设置数据保存到数据文件中的save规则
save 900 1:表示900 秒内如果至少有 1 个 key 的值变化,则保存
save 300 10:表示300 秒内如果至少有 10 个 key 的值变化,则保存
save 60 10000:表示60 秒内如果至少有 10000 个 key 的值变化,则保存

# 数据rdb压缩设置
dbcompression yes  #指定存储至本地数据库时是否压缩数据,默认是yes,redis采用LZF压缩,如果为了节省CPU时间
                    #可以关闭该选项,但会导致数据库文件扁的巨大

dbfilename dump.rdb  #指定rdb保存到本地数据库文件名

stop-writes-on-bgsave-error yes  #当硬盘因为权限等原因无法写入时,停止写入

rdbchecksum yes    #对rdb文件进行校验
# aof文件操作
appendonly no   #指出是否在每次更新操作后进行日志记录,如果不开启,可能会在断电时导致一段时间内的数据丢失,因为redis本身同步数据文件是按上面的save条件来同步的,所以有的数据会在一段                    
                      #时间内只存在于内存中。

# appendfsync always       # always:表示每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全) 
appendfsync everysec       # everysec:表示每秒同步一次(折衷,默认值)
# appendfsync no             # no:表示等操作系统进行数据缓存同步到磁盘(快) 
  1. 手动触发
    手动触发Redis进行RDB持久化的命令有两种:
      ①、save
      该命令会阻塞当前Redis服务器,执行save命令期间,Redis不能处理其他命令,直到RDB过程完成为止。
      显然该命令对于内存比较大的实例会造成长时间阻塞,这是致命的缺陷,为了解决此问题,Redis提供了第二种方式。
      ②、bgsave
      执行该命令时,Redis会在后台异步进行快照操作,快照同时还可以响应客户端请求。具体操作是Redis进程执行fork操作创建子进程,RDB持久化过程由子进程负责,完成后自动结束。阻塞只发生在fork阶段,一般时间很短。
      基本上 Redis 内部所有的RDB操作都是采用 bgsave 命令。
      ps:执行执行 flushall 命令,也会产生dump.rdb文件,但里面是空的. 获取 redis 的安装目录可以使用 config get dir 命令

发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~