查询的结果缓存在map里面(memcached),但是对于添加,修改,删除以后,缓存里面的结果已经和数据库中的结果不一样了,如何保持数据库和缓存的同步呢?现在采取的方式是,只要有添加删除修改操作就相应的把缓存中跟该表相关的数据全部删除,等再次查询的时候如果缓存里面没有则直接去数据库中取得并且保存在缓存中,但是这样的方式缓存的利用率不是很高,一个表里面有一点改变该表的缓存就被清空了,各位大虾有没有什么好的理论和招式,请指导,如果哪位知道hibernate的或者其他缓存的去除脏数据的原理的话请指教。