乐趣区

关于redis:Redis-6种淘汰机制看看你知道哪些

redis 是个基于内存的缓存数据库,既然是基于内存的,那必定就会有存满的时候

如果真的存满了,再有新的数据过去必定就存不进去了

此时 redis 会执行既定的一些淘汰策略,本文大略讲一下 redis 六种淘汰策略

一、六种淘汰策略

1.noeviction(默认策略):对于写申请不再提供服务,间接返回谬误(DEL 申请和局部非凡申请除外)

2.allkeys-lru:从所有 key 中应用 LRU 算法进行淘汰(LRU 算法:即最近起码应用算法)

3.volatile-lru:从设置了过期工夫的 key 中应用 LRU 算法进行淘汰

4.allkeys-random:从所有 key 中随机淘汰数据

5.volatile-random:从设置了过期工夫的 key 中随机淘汰

6.volatile-ttl:在设置了过期工夫的 key 中,淘汰过期工夫残余最短的

当应用 volatile-lru、volatile-random、volatile-ttl 这三种策略时,如果没有 key 能够被淘汰,则和 noeviction 一样返回谬误

二、如何获取及设置内存淘汰策略

1、获取以后内存淘汰策略:

127.0.0.1:6379> config get maxmemory-policy

能够看到以后应用的默认的 noeviction 策略

2、获取 Redis 能应用的最大内存大小

127.0.0.1:6379> config get maxmemory

如果不设置最大内存大小或者设置最大内存大小为 0,在 64 位操作系统下不限度内存大小,在 32 位操作系统下最多应用 3GB 内存。32 位的机器最大只反对 4GB 的内存,而零碎自身就须要肯定的内存资源来反对运行,所以 32 位机器限度最大 3 GB 的可用内存

3、设置淘汰策略

通过配置文件设置淘汰策略(批改 redis.conf 文件):

maxmemory-policy allkeys-lru

通过命令批改淘汰策略:

127.0.0.1:6379> config set maxmemory-policy allkeys-lru

4、设置 Redis 最大占用内存大小

# 设置 Redis 最大占用内存大小为 100M
127.0.0.1:6379> config set maxmemory 100mb

起源:blog.csdn.net/ju_362204801/article/details/114441137

退出移动版