美文网首页
Redis 缓存更新策略

Redis 缓存更新策略

作者: 滨岩 | 来源:发表于2020-01-19 19:40 被阅读0次

    Redis 缓存更新策略

    我们知道缓存的数据通常都是有生命周期的,需要做一些定期更新或者删除,从而保证内存空间在一个可控的范围内。

    Redis缓存更新策略主要有三种:

    1、LRU/LFU/FIFO算法剔除:例如maxmemory-policy

    当Redis memory 达到最大值的时候,首先关注的是过期的数据,通过删除策略来达到保护内存的效果。这种方式只需要关注缓存的策略配置,不需要关心具体的每一个key 到底是怎么过期的,每一个key 是到底怎样被删除的

    2、超时剔除:例如 expire

    对于Redis 来说实际上就是设置过期时间

    比如存储一个用户信息,我将它缓存起来了,我将它设置半个小时的超时时间,半个小时之内,任何访问 或者请求 都会从缓存中去拿结果,

    然后来保证性能,而且可以降低后台的负载。

    有一个问题就是说,如果在这个缓存期间,有一些用户信息更新了,而且用户更新了非常重要的信息,那你将要怎么办。对于这种expire来说就不是很好

    对于一些说明,缓存在Redis中,暂时的不一致对于用户来说,是可以接受的,因为我们要保证性能。

    3、主动更新:开发控制生命周期

    比如金融信息,需要开发一些业务代码主动去更新缓存,或者更新用户信息的时候,发一条消息或者触发一个事件来主动剔除或者回写更新用户信息,

    来实现缓存的一致性。不过这不是完全的强一致性,而是最终一致性。

    策略|一致性|维护成本

    --|:--:|--:

    LRU/LIRS算法剔除 |最差 |低

    超时剔除 |较差 |低

    主动更新 |强 |高

    最佳实战:

    1、低一致性:最大内存和淘汰策略

    2、高一致性:超时剔除和主动更新结合,最大内存和淘汰策略兜底

    相关文章

      网友评论

          本文标题:Redis 缓存更新策略

          本文链接:https://www.haomeiwen.com/subject/mafdzctx.html