Redis是基于内存key-value键值对的内存数据库,我们安装完数据库之后,内存往往会受到系统内存大小的限制,我们也可以配置redis能使用的最大的内存大小
1.配置Redis内存
(1)通过配置文件修改
我们可以通过配置文件修改,安装完redis之后我们可以在redis根目录中找到redis.conf文件,在配置文件中添加一下参数就可以设置redis的内存大小了
maxmemory 100mb //指定最大内存为100mb
(2)进入客户端修改
在服务器上输入redis-cli之后进入redis客户端,通过命令动态修改redis内存大小
//设置Redis最大占用内存大小为100M
127.0.0.1:6379> config set maxmemory 100mb
//获取设置的Redis能使用的最大内存大小
127.0.0.1:6379> config get maxmemory
如果不设置最大内存大小或者设置最大内存大小为0,在64位操作系统下不限制内存大小,在32位操作系统下最多使用3GB内存
2.redis内存淘汰策略
我们设置完redis内存之后,我们就像里面放数据,但是内存总有满的时候,满的时候redis又是怎么处理的呢
首先,我们每进行一次redis操作的时候,redis都会检测可用内存,判断是否要进行内存淘汰,当超过可用内存的时候,我们就会使用对应策略,默认是no-envicition
1.no-envicition:我们先了解默认的,该策略对于写请求不再提供服务,会直接返回错误,当然排除del等特殊操作
2.allkeys-random:从redis中随机选取key进行淘汰
3.allkeys-lru:从redis中选取使用最少的key进行淘汰
4.volatile-random:从redis中设置过过期时间的key,进行随机淘汰
5.volatile-ttl:从redis中选取即将过期的key,进行淘汰
6.volatile-lru:从redis中设置过过期时间的key中,选取最少使用的进行淘汰
我们自己可以命令查看当前redis使用的淘汰策略
config get maxmemory-policy //获取当前内存淘汰策略
config set maxmemory-policy valatile-lru //通过命令修改淘汰策略