思路:
- 当后台修改内容信息后(也就数据库信息发生修改时),只需要把redis中缓存的数据删除即可。后台系统不直接操作redis数据库。
- 可以发布一个服务,当后台对内容信息修改后,调用服务即可。服务的功能就是根据cid删除redis中缓存数据。
Service层
接收cid,根据cid调用JedisClient删除redis中缓存的数据。返回结果
@Override
public TaotaoResult syncContent(Long cid) {
jedisClient.hdel(REDIS_CONTENT_KEY, cid + "");
return TaotaoResult.ok();
}
Controller层
发布服务,接收参数cid,返回结果。
@RequestMapping("/sync/content/{cid}")
@ResponseBody
public TaotaoResult sysncContent(@PathVariable Long cid) {
try {
TaotaoResult result = contentService.syncContent(cid);
return result;
} catch (Exception e) {
e.printStackTrace();
return TaotaoResult.build(500, ExceptionUtil.getStackTrace(e));
}
}
后台系统只要内容(数据库数据)发生变化(增删改查)就需要调用缓存同步的服务