1.hibernate 一级缓存
session级别缓存,连接独享,内部结构就是,简单的键值对
key:全限定名
value:数据
2.hibernate二级缓存
sessionFactory级别缓存
二级缓存是应用cache,为了多个会话共享,快速定位数据,有region的概念
分区准则,是先按照实体类全限定名进行分区;
再然后按照 key value分布,key自然是id;
好处:
1.更快的查询,索引到数据;
2.可以快速清除指定的cache;
应用场景:
hibernate的三级缓存,查询缓存,先按照全限定名分区,然后以key value存储,
key是 查询语句,value: ids;
某个表数据的插入,更新,删除 都会影响查询结果,会清除对应实体的查询缓存;
利用memcache设计自己的缓存;
1.人为开始分区
client.beginWithNamespace("nameSpace1");
........
client.endWithNamespace();
2.清除分区
client.invalidateNametspace("nameSpace1");
3. 同等1的写法
client.withNamespace("nameSpace1", new MemcachedClientCallable<String>() {
public String call(MemcachedClient client) throws MemcachedException,
InterruptedException, TimeoutException {
client.set("key", 1000, "插入的值");
client.get("key");
}
});