在Redis配置文件(redis.conf)中,可以通过设置maxmemory-policy参数来控制当Redis内存达到最大值时的数据淘汰策略。以下是一些常用的maxmemory-policy设置选项:
noeviction:默认策略,当内存达到最大值时,不再允许写入操作,但仍然允许读取操作。如果尝试写入,将返回错误。
allkeys-lru:使用最近最少使用(LRU)算法淘汰所有键,直到有足够的内存空间为止。
volatile-lru:使用最近最少使用(LRU)算法淘汰设置了过期时间的键,直到有足够的内存空间为止。
allkeys-random:随机淘汰所有键,直到有足够的内存空间为止。
volatile-random:随机淘汰设置了过期时间的键,直到有足够的内存空间为止。
volatile-ttl:淘汰设置了过期时间的键,优先淘汰剩余生存时间(TTL)最短的键,直到有足够的内存空间为止。
要设置maxmemory-policy,请按照以下步骤操作:
打开Redis配置文件(redis.conf)。通常位于/etc/redis/redis.conf或/usr/local/etc/redis/redis.conf。
在配置文件中找到maxmemory-policy行,如果没有这一行,请在文件末尾添加。
将maxmemory-policy设置为您选择的策略。例如,如果您希望使用LRU算法淘汰所有键,可以将该行设置为maxmemory-policy allkeys-lru。
保存并关闭配置文件。
重启Redis服务以使更改生效。在Linux系统上,可以使用以下命令重启Redis:
sudo service redis-server restart
或者
sudo systemctl restart redis-server
注意:在设置maxmemory-policy之前,请确保已经为Redis分配了最大内存。可以通过设置maxmemory参数来指定最大内存。例如,要将最大内存设置为500MB,可以在配置文件中添加或修改以下行:
maxmemory 500mb