Redis内存淘汰策略
查看redis内存
查看内存大小命令:
```
config get maxmemory
```
如果内存大小为0表示没有设置最大内存大小,在64位操作系统下则不限制内存大小,在32位操作系统下最多使用3GB内存;
当redis设置内存最大大小时,内存占满时需要用到内存淘汰策略;
设置redis最大内存:
```
config set maxmemory 100mb
```
内存淘汰策略配置
查看当前内存淘汰策略
```
config get maxmemory-policy
```
修改淘汰策略的两种方式
1.修改redis.conf配置文件:
```
maxmemory-policy allkeys-lru
```
2.通过命令修改淘汰策略:
```
config set maxmemory-policy allkeys-lru
```
淘汰策略种类
1.noeviction(默认策略)
对于写请求不再提供服务,直接返回错误(DEL和部分特殊请求除外);
2.allkeys-lru
从所有key中使用LRU算法(最近最少使用)进行淘汰;
3.volatile-lru
从设置了过期时间的key中使用LRU算法进行淘汰;
4.allkeys-random
从所有key中随机淘汰数据;
5.volatile-random
从设置了过期时间的Key中随机淘汰;
6.volatile-ttl
在设置了过期时间的Key中,根据Key的过期时间进行淘汰,越早过期的越优先被淘汰;
注意
redis的LRU只是近似LRU,不是真正严格的LRU算法;要体现一个Key被访问的热度可以用LFU算法;LFU算法只在redis4.0以上才具有;