本地缓存常见问题
1. 缓存一致性 。二级缓存和数据库中的数据必须一致 。一旦数据被修改 , 本地缓存和远程缓存应在数据库修改的同时同步更新 。
解决方案1:使用MQ 。
目前的部署一般都是集群部署,不同节点有多个本地缓存 。可以利用MQ的广播模式,在数据修改时向MQ发送消息 , 由节点监听并消费该消息,删除本地缓存,达到最终一致性 。
解决方案二:Canal+MQ 。
如果你的业务代码中不想发送MQ消息,也可以应用近年来比较流行的方法:订阅数据库变更日志,然后操作缓存 。Canal订阅Mysql的Binlog日志,当发生变化时向MQ发送消息 , 从而也实现了数据的一致性 。
2.如何提高缓存命中率?
- 根据业务场景设计合理的时效性 。
- 设计合理的缓存粒度 。
- 设计合理的缓存过期策略 。
- 合理的缓存预加载 。
- 防止缓存崩溃和击穿 。
- 设计合理的缓存容量 。
这样就会删除一些key,造成缓存穿透,从而降低缓存命中率,所以需要合理配置缓存容量 。
【java中如何实现本地缓存?】
推荐阅读
- Java为什么比C语言更加的受青睐?
- CAS操作在并发编程中的应用及其问题分析
- 港片中的“廉政公署”,比警察还厉害,现实中权力到底有多大?
- 没有门厅如何设计玄关,入户没有玄关可以摆放大绿植
- 教你如何给冰箱除冰 冰箱除冰小技巧
- 如何养育男孩儿
- 相机照片删除了怎么恢复 相机照片删除了如何恢复
- 发黄的衣服如何洗掉 发黄的衣服如何洗
- 如何清除衣服上的口香糖 如何清除衣服上的口香糖污渍
- 三门青蟹如何保存不会死 三门青蟹怎样才能放长时间