我注意到当我从会话工厂中逐出东西时,memcached服务器中的cmd_flush计数器会增加。这使得缓存不太有用,因为它经常被重置。
这是我的代码触发了这个:
session.SessionFactory.Evict(typeof(Foo));
session.SessionFactory.Evict(typeof(Bar));
session.SessionFactory.EvictQueries(key);
我还没弄清楚NHibernate如何将它变成flush_all命令。
有没有人对如何从缓存中驱逐某些对象类型有任何想法而不把它全部吹掉?
答案 0 :(得分:0)
显然SessionFactoryImpl.Evict
拨打Cache.Clear()
来拨打client.FlushAll()
。
我最终调整了数据库设计,以避免自己驱逐对象。