复述,缓存策略有哪些

介绍

小编给大家分享一下复述,缓存策略有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!

将复述,用作缓存时,如果内存空间用满,就会自动驱逐老的数据。默认情况下memcached就是这种方式,大部分开发者都比较熟悉.LRU是复述,唯一支持的回收算法。

<强>驱逐策略

达到最大内存限制时(maxmemory),复述,根据maxmemory-policy配置的策略,来决定具体的行为。

<强>当前版本,复述,3.0支持的策略包括:

<强> noeviction:不删除策略,达到最大内存限制时,如果需要更多内存,直接返回错误信息。大多数写命令都会导致占用更多的内存(有极少数会例外,如DEL)。

<强> allkeys-lru:所有关键通用;优先删除最近最少使用(最近使用较少,LRU)的关键。

<强> volatile-lru:只限于设置了到期的部分;优先删除最近最少使用(最近使用较少,LRU)的关键。

<强> allkeys-random:所有关键通用;随机删除一部分关键。

<强> volatile-random:只限于设置了到期的部分;随机删除一部分关键。

<强> volatile-ttl:只限于设置了到期的部分;优先删除剩余时间(时间,TTL)短的关键。

如果没有设置的关键,到期不满足先决条件(先决条件);那么volatile-lru, volatile-random和volatile-ttl策略的行为,和noeviction(不删除)基本上一致。

您需要根据系统的特征,来选择合适的驱逐策略。当然,在运行过程中也可以通过命令动态设置驱逐策略,并通过信息命令监控缓存的小姐和冲击,来进行调优。

一般来说:

如果分为热数据与冷数据,推荐使用allkeys-lru策略。也就是,其中一部分关键经常被读写。如果不确定具体的业务特征,那么allkeys-lru是一个很好的选择。

如果需要循环读写所有的键,或者各个关键的访问频率差不多,可以使用allkeys-random策略,即读写所有元素的概率差不多。

假如要让复述,根据TTL来筛选需要删除的钥匙,请使用volatile-ttl策略。

volatile-lru和volatile-random策略主要应用场景是:既有缓存,又有持久关键的实例中。一般来说,像这类场景,应该使用两个单独的复述,实例。

值得一提的是,设置到期会消耗额外的内存,所以使用allkeys-lru策略,可以更高效地利用内存,因为这样就可以不再设置过期时间了。

以上是复述,缓存策略有哪些的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

复述,缓存策略有哪些