redis的flushdb和flushall区别,大部分帖子都错了

验证的redis版本:6.0.15、Windos为5版本
也许是在线上环境,进行集群redis的操作,需要进行删除key,但是以为一下防火墙问题,在出现重启redis的情况下,我发现使用删除key的命令不生效,于是去网上搜索,大部分帖子会说使用flushdb和flushall,并且列出他们的区别,flushdb不会永久删除,flushall会永久删除,这个结论是错误的。
redis是基于内存的中间件,但是也有自己的持久化操作,其持久化分为RDB(快照保存)和REF(基于文件追加的即时保存),默认的RDB(快照保存)的配置如下:

#redis.conf配置文件

#900秒内 若有一个1key发生变化就进行保存 可多设几个形成互补
save 900 1
#300秒内,若有1个Key发生变化,就进行rdb保存
save 300 10
  1. 单库删除flushdb 清除当前数据库的数据(redis默认下标为0-15个数据库,默认为0,flushdb会删除当前为0的数据库),【不会立即删除rdb文件,直到触发上述的save条件,如果未触发条件,那么重启后会恢复数据】。(rdb的保存时间为900才会执行一次save)
  2. 多库删除flushall会删除所有数据库,并执行持久化,立刻更新rdb快照文件

所以,实际上并不是flushdb命令可以恢复,而是因为未达到触发存储rdb文件的条件,如果使用del key命令也是一样的,如果未达到rdb的保存条件,立即重启也是可以恢复redis数据的。

  • 13
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值