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一旦重启电脑 数据就会清空了