复述中有哪些内存淘汰机制

介绍

这篇文章将为大家详细讲解有关复述中的内存淘汰机制,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

复述,内存淘汰指的是用户存储的一些键被可以被复述,主动地从实例中删除,从而产生读错过的情况,那么复述,为什么要有这种功能?这就是我们需要探究的设计初衷.Redis最常见的两种应用场景为缓存和持久存储,首先要明确的一个问题是内存淘汰策略更适合于那种场景?是持久存储还是缓存?

内存的淘汰机制的初衷是为了更好地使用内存,用一定的缓存小姐来换取内存的使用效率。

复述,内存淘汰机制有:

1, noeviction,当内存使用达到阈值的时候,所有引起申请内存的命令会报错;

2, allkeys-lru,在主键空间中,优先移除最近未使用的关键;

3, allkeys-random,在主键空间中,随机移除。

内存淘汰策略

内存淘汰只是复述,提供的一个功能,为了更好地实现这个功能,必须为不同的应用场景提供不同的策略,内存淘汰策略讲的是为实现内存淘汰我们具体怎么做,要解决的问题包括淘汰键空间如何选择?在键空间中淘汰键如何选择?

复述,提供了下面几种淘汰策略供用户选择,其中默认的策略为<代码> noeviction 策略:

    <李>

    noeviction:当内存使用达到阈值的时候,所有引起申请内存的命令会报错

    <李>

    allkeys-lru:在主键空间中,优先移除最近未使用的

    <李>

    keyvolatile-lru:在设置了过期时间的键空间中,优先移除最近未使用的

    <李>

    keyallkeys-random:在主键空间中,随机移除某个

    <李>

    keyvolatile-random:在设置了过期时间的键空间中,随机移除某个

    <李>

    keyvolatile-ttl:在设置了过期时间的键空间中,具有更早过期时间的关键优先移除

这里补充一下主键空间和设置了过期时间的键空间,举个例子,假设我们有一批键存储在复述中,则有那么一个哈希表用于存储这批键及其值,如果这批键中有一部分设置了过期时间,那么这批键还会被存储到另外一个哈希表中,这个哈希表中的值对应的是键被设置的过期时间。设置了过期时间的键空间为主键空间的子集。

关于复述中的内存淘汰机制就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

复述中有哪些内存淘汰机制