💡 Redis 是一种基于内存的键值数据库,由于内存有限,当 Redis 占用的内存达到上限时,就需要进行内存淘汰,以腾出一些内存空间。
Redis 中的内存淘汰机制包括🔍:
1)定期删除:Redis 可以设置一个定时器,定期扫描键空间中的键,并删除已经过期的键。
2)惰性删除:当一个键过期时,Redis 不会立即删除该键,而是等到该键被访问时再删除。
3)内存淘汰策略:当 Redis 内存占用达到上限时,会根据内存淘汰策略来选择一些键进行删除,以腾出更多的内存空间。
Redis 中的内存淘汰策略包括🕵️♀️:
1)noeviction:禁止删除键,即不做任何操作。
2)allkeys-lru:从所有的键中选择最近最少使用的键进行删除。
3)allkeys-random:从所有的键中随机选择一些键进行删除。
4)volatile-lru:从已设置过期时间的键中选择最近最少使用的键进行删除。
5)volatile-random:从已设置过期时间的键中随机选择一些键进行删除。
6)volatile-ttl:从已设置过期时间的键中选择剩余时间最短的键进行删除。