云程平台集成了redis,有两种使用redis缓存的方式。无论采用那种方式使用缓存,一定要管理好数据的一致性,当数据库中的数据发生变化的时候,尤其是修改和删除,要保证缓存的数据也同步发生改变。
方式一、通过平台封装工具类RedisUtil
举例:
//注入缓存工具类实例
@Resource
private RedisUtil redisUtil;
//使用工具类直接操作缓存,验证码10分钟内有效
redisUtil.set(mobile, captcha, 600);
方式二、使用Spring缓存注解
从Spring 3.1开始,引入了对Cache的支持,常用的注解有@Cacheable、@CacheEvict、@CachePut,其使用方法和原理都类似于Spring对事务管理的支持。Spring Cache是作用在方法上的,其核心思想是这样的:当我们在调用一个缓存方法时会把该方法参数和返回结果作为一个键值对存放在缓存中,等到下次利用同样的参数来调用该方法时将不再执行该方法,而是直接从缓存中获取结果进行返回。所以在使用Spring Cache的时候我们要保证我们缓存的方法对于相同的方法参数要有相同的返回结果。参考:https://www.cnblogs.com/fashflying/p/6908028.html
举例:通过username查询登录用户信息,首先查询缓存,缓存没有再查数据库。
@Cacheable(cacheNames = CacheConstant.SYS_USERS_CACHE, key = "#p0")
public LoginUser getLoginUserByName(String username) {
SysUser sysUser = getUserByName(username);
if (sysUser != null) {
LoginUser loginUser = new LoginUser();
BeanUtils.copyProperties(sysUser, loginUser);
return loginUser;
}
return null;
}