JAVA如何使用Redis解决缓存穿透呢?

欣喜 Java经验 发布时间:2024-01-24 17:40:49 阅读数:16299 1
下文笔者讲述redis解决缓存穿透的方法及示例分享,如下所示
1.当从redis中读取数据时,获取为空时
 2.此时使用同步方法 从数据库中获取数据
    并放入到redis中
例:redis解决缓存穿透的示例
 
public list<UserInfo> getList() {
        //先在缓存中查询一遍
        List<UserInfo> userInfoList= (List<UserInfo>) redisTemplate.opsForValue().get("UserInfoList");    
        if (userInfoList==null){
            synchronized (this){
                //如果缓存空了
               //在线程加锁的情况下再从缓存中查询一次
                userInfoList= (List<UserInfo>) redisTemplate.opsForValue().get("UserInfoList");   
                if (userInfoList==null){             
                    userInfoList=UserInfoMng.getList();                
                    redisTemplate.opsForValue().set("UserInfoList",userInfoList);
                }
            }
        }
        return UserInfoList;
    }
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202401/17060892837767.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者