Redis事务
Lua脚本
Lua脚本在Redis中具备原子性,可以保证数据一致性的高并发环境。
- Spring中提供了RedisScript接口,DefaultRedisScript为他的实现类
RedisScript接口:
public interface RedisScript<T> {
//获得脚本的sha1
String getSha1();
//获取脚本的返回值
Class<T> getResultType();
//获取脚本的字符串
String getScriptAsString();
}
- 缓存注解应用
//获取ID,取参数ID缓存用户 @Override @Transactional @Cacheable(value = " redisCache",key = "'redis_user_'+#id") public User getUser(long id) { return dao.getUser(id); }
@Cacheable 注解会先尝试从指定缓存中取值
//插入用户,mybatis会回填ID,取结果ID缓存用户
@Override
@Transactional
@CachePut(value = " redisCache",key = "'redis_user_'+#result.id")
public User insertUser(User user) {
dao.insertUser(user);
return user;
}
@CachePut 注解会把返回的结果放入缓存中
注AOP基于动态代理,这里同类内部调用方法,不会使注解生效
- springboot中解决跨域问题
@CrossOrigin(origins = {"对方的域名", "null"})
将该注解加在对用的controller的类或者方法上就可以完成对跨域的访问
代码Git地址https://github.com/rainandsunshine/springboot_reomte.git