redis内存耗尽会怎么样

如果达到设置的上限,Redis的写命令会返回错误信息,(但是读取的操作还是可以正常的进行 返回)或者可以将Redis当缓存来配置淘汰机制,当Redis达到内存上限时旧数据会被冲刷掉。

在 Redis 中,可以使用配置淘汰策略来管理缓存的过期和淘汰机制。Redis 提供了几种淘汰策略,包括 volatile-lruvolatile-ttlvolatile-randomallkeys-lruallkeys-randomnoeviction。你可以根据具体需求选择适合的策略。

示例代码:

  public void set(String key, String value, int expirationSeconds) {
        try (Jedis jedis = jedisPool.getResource()) {
            // 设置键值对
            jedis.set(key, value);
            // 设置过期时间
            jedis.expire(key, expirationSeconds);
        }
    }

    public String get(String key) {
        try (Jedis jedis = jedisPool.getResource()) {
            // 获取值
            return jedis.get(key);
        }
    }

    public static void main(String[] args) {
        RedisCacheExample redisCache = new RedisCacheExample();

        // 设置缓存,并指定过期时间为60秒
        redisCache.set("key1", "value1", 60);

        // 获取缓存值
        String value = redisCache.get("key1");
        System.out.println("Value: " + value);
    }

set 方法中,我们使用 jedis.set 来设置键值对,并使用 jedis.expire 设置键的过期时间。这样,当超过指定的过期时间后,Redis 会自动将键从缓存中淘汰。

8种淘汰策略

假如Redis当中的所有键都没有过期,而此时内存满了,那么客户端继续执行set等命令时,Redis会 怎么处理呢?Redis为我们提供了不同的淘汰策略来处理这种场景。

分别是volatile-lru、allkeys-lru、volatile-lfu、allkeys-lfu、volatile-random、allkeys-random、volatile-ttl、noeviction

详情见:https://m.163.com/dy/article/GEG2T3BS0528O982.html/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值