当数据缓存到Jetcache之后,如果已缓存的数据在数据库中发生了修改和删除,那如果更新缓存中的数据呢?
Jetcache提供了三个注解用于更新缓存的数据
@CacheUpdate注解
@CacheUpdate注解使用在更新方法上,当更新数据库中的数据时,同步更新缓存中的数据。
area:缓存区域
name:缓存名称
key:缓存键,格式是“# 缓存key”,key通过方法参数获取
value:要更新的缓存值,格式是“# 缓存值”,值通过方法参数获取
@Override@CacheUpdate(area = “default”, name = “mycache”, key = “#user.id”, value = “#user”)public int updateUserById(User user) { return userDao.updateById(user);}@CacheInvalidate注解
@CacheInvalidate注解使用在删除方法上,当删除数据库中的数据时,同步删除缓存中的数据。
area:缓存区域
name:缓存名称
key:缓存键,格式是“# 缓存key”,key通过方法参数获取
@Override@CacheInvalidate(area = “default”, name = “mycache”, key = “#id”)public int deleteUserById(int id) { return userDao.deleteById(id);}@CacheRefresh注解
@CacheRefresh注解与@Cached注解配合使用,用于定时更新缓存数据。
这个时间间隔不能太小,因为这个注解会定时查询数据库中的数据更新缓存。
refresh:指定更新缓存的时间间隔
timeUnit:指定时间单位
@Override@Cached(area = “default”, name = “mycache”, key = “#id”, expire = 1000, cacheType = CacheType.BOTH)@CacheRefresh(refresh = 30, timeUnit = TimeUnit.MINUTES)public User getUserById(int id) { return userDao.getById(id);}
本文来自投稿,不代表商川网立场,如若转载,请注明出处:http://www.sclgvs.com/zhishi/62495.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。