随着时间的积累,应用的使用用户不断增加,数据规模也越来越大,往往数据库查询操作会成为影响用户使用体验的瓶颈,此时使用缓存往往是解决这一问题非常好的手段之一。

原始的使用缓存的方式如下:这样的缓存使用方式将数据读取后,主动对缓存进行更新操作,这样的方式使用方便,但是代码的耦合性高,代码侵入性强。

 1  /**
 2      * 使用缓存以id为字样,如果id所对应的缓存信息已经存在,则不会再读db
 3      * @param id
 4      * @return
 5      */
 6     public UserInfo getUserInfoById(int id){
 7         UserInfo userInfo = (UserInfo) redisTemplate.opsForValue().get(id+"");
 8         if(userInfo != null){
 9             return userInfo;
10         }
11         System.out.println("若下面没出现“无缓存的时候调用”字样且能打印出数据表示测试成功");
12         UserInfo userInfo1 = userInfoDao.findById(id);
13         ValueOperations<String, UserInfo> valueOperations = redisTemplate.opsForValue();
14         valueOperations.set(id+"", userInfo1);
15         return userInfo1;
16     }
17 
18     @Transactional
19     public int saveUserInfo(UserInfo userInfo){
20         //更新缓存
21         userInfoDao.saveUserInfo(userInfo);
22         int id = userInfo.getId();
23         //userInfo 里面的id值已经发生了变化
24         System.out.println(userInfo.getId());
25         ValueOperations<String, UserInfo> valueOperations = redisTemplate.opsForValue();
26         valueOperations.set(id+"", userInfo);
27         redisTemplate.opsForValue().set(id+"", userInfo);
28         return id;
29     }
View Code

相关文章: