首页 > 代码库 > 缓存同步问题
缓存同步问题
当你有多台服务器的时候需要用memcache做数据缓存,讲面临一个如果缓存的数据发生变化更新缓存的问题。
缓存的的存储,是前台项目应用,而变更数据是在后台,这是两个独立的项目,当你的缓存存储的是对象,那么在后台变更数据的时候是无法delete掉缓存的数据的,在delete的时候会去查找这个对象在后台项目中是没有这个对象的定义的,所以是无法清理掉的。
对于对象无法清理掉,所以可以选择把对象序列化成字符串(例如Json),这样就可以在后台,直接清理了。
对于那些是对象的缓存,可以把这个对象存储在一个内存里(静态的变量),然后在memcache中设置一个字符串的表示,当字符串的标识,发生变化的时候,就读取数据库,更新内存中的数据。如果这样做,又会带来一个新的问题如果判断memcache中的标识发生了变化呢,我目前用的一个方法是在内存中在定义一个静态变量,用在存储memcache中的标识,每次在对比对比这两个值来判断是否发生变化,而memcache中的标识是用时间戳表示。
这样每次清理缓存只需要清理memcache中的时间戳表示就可以了。
来自为知笔记(Wiz)
缓存同步问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。