JAVA如何使用Redis解决缓存穿透呢?
下文笔者讲述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; }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。