Redis如何选择合适的持久化方式

可以同时使用两种持久化功能,Redis重启的时候会优先载入AOF文件来恢复原始的数据,因为在通常情况下AOF文件保存的数据集要比RDB文件保存的数据集要完整

如果你非常关心你的数据,但是仍然可以承受分钟以内的数据丢失,那么你可以只使用RDB(默认)持久化redis本身一般不用在数据持久化上面,更多是为了实现功能和缓存提高响应效率,redis失效可以通过db恢复,因此在技术实现方案上,不要过度依赖redis持久化

怎么设置键的有效期?

redis有4个命令来设置过期时间

EXPIRE:key的生存时间设置为ttl秒

PEXPIRE:key的生存时间设置为ttl毫秒

EXPIREAT:将key的过期时间设置为timestamp指定的秒数时间戳

PEXPIREAT:将key的过期时间设置为timestamp指定的毫秒数时间戳

缓存的常见删除策略有哪些?

常见的删除策略有以下3种:

1.定时删除

在设置的过期时间的同时,创建一个定时器,让定时器在键的过期时间来临时,立即执行对键的删除操作

2.惰性删除

放任过期键不管,每次从键空间获取键时,检查该键是否过期,如果过期,就删除改建,如果没有过期,就返回改建

3.定时删除

每隔一段时间,程序对数据库进行一次检查,删除里面的过期键,至于要删除的哪些数据库的哪些过期键,则由算法决定

其中定时删除和定期删除为主动删除策略,惰性删除为被动策略

定时策略

定时删除策略通过使用定时器,定时删除策略可以保证过期键尽可能快地被删除,并释放过期键占用的内存。

因此,定时删除策略的优缺点如下:

1.优点:对内存非常友好

2.缺点:对CPU时间非常不友好

举个例子,如果有大量的命令请求等待服务器处理,并且服务器当前不缺少内存,如果服务器将大量CPU时间用来删除过期键,那么服务器的响应时间和吞吐量就会受到影响。

也就是说,如果服务器创建大量的定时器,服务器处理命令请求的性能就会降低,

因此Redis目前并没有使用定时器删除策略。

惰性删除策略

惰性删除策略只会在获取键时才对键进行过期检查,不会在删除其他无关的过期键花费过多的CPU时间。因此,惰性删除策略的优缺点如下

1.优点:对CPU时间非常友好

2.缺点:对内存非常不友好

举个例子,如果数据库有很多的过期键,而这些过期键又恰好一直没有被问到,那这些过期就会一直占用着宝贵的内存资源,造成资源浪费

定期删除策略

定期删除策略是定期删除策略和惰性删除策略的一种整合折中方案。

定期删除策略每隔一段时间执行一次删除过期键操作,并通过限制删除操作执行的时长和频率来减少删除操作对CPU时间的影响,同时,通过定期删除过期键,也有效地减少了因为过期键而带来的内存浪费

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值