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以上才具有;

posted @ 2023-01-17 23:11  HexThinking  阅读(96)  评论(0编辑  收藏  举报