Memcached 是一个开源的,高性能的内存绶存软件,从名称上看Mem 就是内存的意思, 而Cache 就是缓存的意思。Memcached 的作用: 通过在事先规划好的内存空间中临时绶存数据库中的各类数据,以达到减少业务对数据库的直接高并发访问, 从而达到提升数据库的访问性能,加速网站集群动态应用服务的能力。
memcached 服务在企业集群架构中有哪些应用场景?
一、作为数据库的前端缓存应用
a、完整缓存( 易) ,静态缓存
例如:商品分类(京东),以及商品信息,可事先放在内存里, 然后再对外提供数据访问,这种先放到内存,我们称之为预热,( 先把数据存缓存中), 用户访问时可以只读取memcached 缓存,不读取数据库了。
b、执点缓存(难)
需要前端web 程序配合,只缓存热点的数据, 即缓存经常被访问的数据。
先预热数据库里的基础数据,然后在动态更新,选读取缓存,如果缓存里没有对应的数据,程序再去读取数据库,然后程序把读取的新数据放入缓存存储。
特殊说明:
那么什么是获取资格?
二、作业集群的session 会话共享存储。
Memcached 服务在不同企业业务应用场景中的工作流程
当web 程序需要访问后端数据库获取数据时会优先访问Memcached 内存缓存,如果缓存中有数据就直接获取返回前端服务及用户,如果没有数据(没有命中),在由程序请求后端的数据库服务器,获取到对应的数据后,除了返回给前端服务及用户数据外,还会把数据放到Memcached 内存中进行缓存,等待下次请求被访问,Memcache 内存始终是数据库的挡箭牌,从而大大的减轻数据库的访问压力,提高整个网站架构的响应速度,提升了用户体验。
当程序更新,修改或删除数据库中已有的数据时,会同时发送请求通知Memcached 已经缓存的同一个ID 内容的旧数据失效,从而保证Memcache中数据和数据库中的数据一致。
如果在高并发场合,除了通知Memcached 过程的缓存失效外,还会通过相关机制,使得在用户访问新数据前,通过程序预先把更新过的数据推送到memcache 中缓存起来,这样可以减少数据库的访问压力,提升Memcached中缓存命中率。
数据库插件可以再写入更新数据库后,自动抛给MC 缓存起来,自身不Cache.