Memcache知识点梳理

http://369369.blog.51cto.com/319630/833234/

 

1、检查客户端的请求数据是否在memcached中,如有,直接把请求数据返回,不再对数据库进行任何操作,路径操作为①②③⑦。
2、如果请求的数据不在memcached中,就去查数据库,把从数据库中获取的数据返回给客户端,同时把数据缓存一份到memcached中(memcached客户端不负责,需要程序明确实现),路径操作为①②④⑤⑦⑥。
3、每次更新数据库的同时更新memcached中的数据,保证一致性。
4、当分配给memcached内存空间用完之后,会使用LRU(Least Recently Used,最近最少使用)策略加上到期失效策略,失效数据首先被替换,然后再替换掉最近未使用的数据。

 

手动清除memcached缓存方法 

telnet localhost 11211

flush_all

php 调用

$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
$memcache_obj->flush();

 

全热数据?

 其实就是同步更新redis, 异步写数据库 
 全内存,不用文件 
 持久都在数据库 
 这个文件实测还是影响性能的 
 对,全热数据当然内存大。 
 每核32g 4核开3个实例,1个实例跑系统的别的东西
 
比如只维护两张表到内存
测试的时候可以先关闭到缓存,这样改一下数据库数据就是最新的了
 或者通过接口来改数据
而不是直接动数据库
不然你改了数据库,就得重新预热内存数据了 
memcache一旦重启电脑 数据就会清空了

posted on 2016-07-09 21:05  防空洞123  阅读(170)  评论(0编辑  收藏  举报

导航