请问下你们是怎么使用这个缓存系统的,如果每个功能,都是先判断memcache里有没有缓存,如果有直接拿,没有就先写入到memcached吗?
那么代码化就是:
if(!memcache){
写入数据memcached
}else{
直接从memcached拿数据
}
现在的问题是,如果每个功能,每个模块,都先来判断memcached,会不会很麻烦啊,有没有什么好的架构方法吗?
回复讨论(解决方案)
目前是这样做的
因为需要用到这个的其实就几处而已
如果有很多的地方要用到这个,那就把数据库的存储和查询+缓存封装起来 每次直接调用封装好的方法 不用每次都写memcache的get和set
使用缓存(无论是什么样的缓存)的原则是:
只在产生与缓存数据不同的数据时,写缓存。比如数据库插入、修改
其他的地方都是只读
memcache 有命中几率的, 就是数据明明在memcache中有, 却没有读到, 在访问量大的时候, 就会出现, 所以每次请求都要先判断是否从memcache中读到了数据.