redis中maxmemory和淘汰策略

redis中maxmemory和淘汰策略

 

2017.07.29 12:43* 字数 463 阅读 3163评论 0喜欢 0

在redis中,允许用户设置最大使用内存大小maxmemory(需要配合maxmemory-policy使用),设置为0表示不限制;当redis内存数据集快到达maxmemory时,redis会实行数据淘汰策略。Redis提供6种数据淘汰策略:

  1. volatile-lru:从已设置过期时间的内存数据集中挑选最近最少使用的数据 淘汰;
  2. volatile-ttl: 从已设置过期时间的内存数据集中挑选即将过期的数据 淘汰;
  3. volatile-random:从已设置过期时间的内存数据集中任意挑选数据 淘汰;
  4. allkeys-lru:从内存数据集中挑选最近最少使用的数据 淘汰;
  5. allkeys-random:从数据集中任意挑选数据 淘汰;
  6. no-enviction(驱逐):禁止驱逐数据。(默认淘汰策略。当redis内存数据达到maxmemory,在该策略下,直接返回OOM错误);
    关于maxmemory设置,通过在redis.conf中maxmemory参数设置,或者通过命令CONFIG SET动态修改
    关于数据淘汰策略的设置,通过在redis.conf中的maxmemory-policy参数设置,或者通过命令CONFIG SET动态修改

如127.0.0.1:6379>CONFIG GET maxmemory
1) “maxmemory"
2) “0”
127.0.0.1:6379>CONFIG SET maxmemory 100MB
OK
127.0.0.1:6379>CONFIG GET maxmemory

  1. “maxmemory"
  2. “104857600”

注意,在64bit系统下,maxmemory设置为0表示不限制Redis内存使用,在32bit系统下,maxmemory不能超过3GB;

应用:
如mysql里有2000w条数据,redis只存20w条热点数据,如何保证redis中的数据都是热点数据?
这就能设置最大内存,再设置淘汰策略,设置volatile-lru,allkeys-lru等都可以;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值