开发者学堂课程【Java面试疑难点串讲2:缓存和数据库同步】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/25
缓存和数据库同步
使用缓存,核心意义在于,为了减少数据库的操作。
缓存与数据库之间内容有一定的差异,所以缓存和数据库一定不可能完全同步。若要求数据库和缓存尽可能保持同步,则前提是:
1、缓存必须是数据库专用的缓存
-在所有的ORMapping设计组件之中都会存在有EHCache缓存组件,这个缓存组件主要是为帮助用户减少数据库的处理操作,但是一般这样的缓存均会有独立的回收算法:LRU、FIFO、软引用、弱引用。这些算法仅保证缓存中不需要的内容及时被清理干净,若一直被使用,则会被一直保留,并且这一操作只能通过明确的代码来释放;
2、缓存必须是在进行分布式或反向代理式的操作时使用
-如,系统里配置多个Tomcat(WEB容器)但是WEB容器需要统一为所有的用户进行服务。为了操作方便可将服务器上的图片或者视频等内容暂时保存到本地服务器上,因为这些数据,可以进行手工的清除,如,Nginx,使用purge模块即可实现。
3、缓存必须采用缓存数据库完成
-memcached、Redis,里面的数据保存的内容往往是不会显示的数据;对于缓存的数据库要保存的内容往往都是高并发的数据信息统计,对于这些信息的统计处理,会结合大数据的开发工具完成,或者在进行集群设计的时候使用这些缓存进行更加方便的协调处理,保存分布式服务器上的公共数据,
如、session
缓存的内容99%情况下是与数据库不同步,若你需要进行同步处理,则直接