一、概念讲解
- 简介:
memcache是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的、需要频繁访问数据库的网站访问速度提升效果十分显著 。这是一套开放源代码软件,以BSD license授权发布。
- 1.memcache是一个高性能的分布式的内存对象缓存系统,用于动态web应用以减轻数据库负担
- 2.memcache通过在内存里维护一个统一的巨大的hash表,来存储经常被读写的一些数组与文件,从而极大的提高网站的运行效率。
- 3.memcache是一种内存缓存技术,是一种缓存手段,要看情况使用
- 对于频繁读取,每次读取重复率高,数据更新频度低的数据,用memcache可以优化系统响应速度
- memcache和memcached的区别:
memcache时这个项目的名称,而memcached是它服务端的主程序文件名
- mamcache的使用场景:
访问频繁的字典数据,大量的hot数据,页面缓存,频繁的查询条件和结果,临时处理的数据
- memcache的工作流程如下:
- (1)检查客户端的请求数据是否存在,memcached中,如果有请求的数据,直接把请求的数据返回,不再对数据库进行任何操作,路径为:①②③⑦,client->web/app+memcache client->memcache->web/app+memcache client->client
- (2)如果请求的数据不在memcached中,就去查数据库,把从数据库中获取的数据返回给数据库,同时把数据缓存一份到memcached中(memcached客户端不负责,需要程序明确实现),①②④⑤⑦⑥,client->web/app+memcache
client->memcache->DB->web/app+memcache client->client - (3)每次更新数据库的同时更新memcached中的数据,保证一致性
- (4)当分配给memcache内容空间用完后,会使用LRU策略加上到期失效策略,失效数据首先被替换,然后再替换掉最近未使用的数据
LRU简介:
LRU是Least Recently Used