Redis之缓存雪崩问题解决方案

一、介绍

缓存雪崩,指大量的缓存失效,大量的请求又同时落在数据库。主要的一种诱因是key设置的过期时间都一样。

二、解决方法

1. 锁

加锁,每次只让一个线程可以访问数据库,随后存入缓存。性能太差。

2. 不同的过期时间

最简单有效的解决办法是设置不同的过期时间。比如

int timeout = 10 + new Random().nextInt(20);
redisTemplate.opsForValue().set(key, JSON.toJSONString(coursePublish), timeout, TimeUnit.SECONDS);

3. 缓存预热和定时任务

使用缓存预热,把数据提前放入缓存,然后根据过期时间,发布合理的定时任务,主动去更新缓存。
缓存预热参考代码如下。

@Component
public class RedisHandler implements InitializingBean {
   
    @Autowired
    RedisTemplate redisTemplate;
    @Autowired
    CoursePublishMapper coursePublishMapper;

    @Override
    public void afterPropertiesSet() throws Exception {
   
        List<CoursePublish> coursePublishList = coursePublishMapper.selectList(new LambdaQueryWrapper<CoursePublish>());
        //缓存预热
        coursePublishList.forEach(coursePublish -> {
   
            String key = "content:course:publish:" + coursePublish.getId();
            redisTemplate.opsForValue().set(key, JSON.toJSONString(coursePublish));
        });
    }
}

相关推荐

  1. Redis缓存雪崩问题解决方案

    2024-02-23 19:52:01       47 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-23 19:52:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-23 19:52:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-23 19:52:01       82 阅读
  4. Python语言-面向对象

    2024-02-23 19:52:01       91 阅读

热门阅读

  1. 使用Python创建一个简单的Discord机器人

    2024-02-23 19:52:01       64 阅读
  2. 2.22号qt

    2024-02-23 19:52:01       45 阅读
  3. 【Git】 删除远程分支

    2024-02-23 19:52:01       57 阅读
  4. 在C++程序中给视频添加文字水印

    2024-02-23 19:52:01       51 阅读
  5. win7 使用openssh

    2024-02-23 19:52:01       53 阅读
  6. http管道化

    2024-02-23 19:52:01       46 阅读
  7. 100条经典C语言题第二天(10-20)

    2024-02-23 19:52:01       47 阅读
  8. Go 线程池实现案例

    2024-02-23 19:52:01       41 阅读
  9. redis的AOF机制

    2024-02-23 19:52:01       48 阅读
  10. Day13-Linux系统用户管理知识精讲2

    2024-02-23 19:52:01       40 阅读
  11. j2ee规范在tomcat中部署的目录结构

    2024-02-23 19:52:01       40 阅读
  12. xrpc: 一个基于消息队列的的Go语言RPC框架

    2024-02-23 19:52:01       53 阅读