openstack--memcache

概念

memcached是一个开源的、高性能的分布式内存对象缓存系统。
通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高网站访问速度,减轻数据库负载。

memcached是一种内存缓存,把经常需要存储的对象或数据存在内存中。
在内存中数据通过API的方式被存取,数据经过利用HASH之后被存放到位于内存上的HASH表内,HASH表中的数据已key-value的形式存放,由于Memcached灭有实现访问认证及安全管理控制,因此在面向Internet的系统架构中,Memcached服务器通常位于用户的安全区域。

特点

1、协议简单
使用基于文本行的协议。
2、基于libevent的时间处理
libevent利用C开饭的程序库,他讲BSD系统的kqueue,Linux系统的epoll等时间处理功能封装成一个接口,确保即时服务端口的连数据。加也能发挥很好的性能。
memcahced利用这个库进行异步事件处理。
3、内置的内存管理方式
memcached有一套自己的管理内存方式,非常高效。
4、节点相互独立的分布式
memcached服务器之间互不通信,都是独立的存储数据。

缓存流程

  1. 检查客户端请求的数据是否在 Memcache 中,如果存在,直接将请求的数据返回,不在对数据进行任何操作。

  2. 如果请求的数据不在 Memcache 中,就去数据库查询,把从数据库中获取的数据返回给客户端,同时把数据缓存一份 Memcache 中。

  3. 每次更新数据库的同时更新 Memcache 中的数据库。确保数据信息一致性。

  4. 当分配给 Memcache 内存空间用完后,会使用LRU(least Recently Used ,最近最少使用 ) 策略加到其失效策略,失效的数据首先被替换掉,然后在替换掉最近未使用的数据。
    网上查找图片

使用前需要考虑的因素

1、单点故障
2、存储空间限制
(32位系统可以缓存数据位2G,64位系统可以无限缓存,服务器物理内存足够大即可)
3、存储单元限制
以key-value为单元进行储存
key的存储尺寸为250字节
value的存储尺寸为1MB
超过不允许存储
4、数据碎片
内存存储单元是按照chunk来分配的,这意味着不可能所有的value数据大小正好等于chunk的大小,因此会造成内存碎片,而浪费存储空间
5、利用旧算发局限性
memcached缓存系统的LRU算法,并不是针对全局空间的存储数据的,而是针对slab的
slab是memcached中具有同样大小的多个chunk集合
6、数据的访问安全性
memcached服务端并没有相应的安全认证机制通过,通过非加密的Telnet连接即可对memcached服务端的数据进行操作

上述就是Memcached,如有什么错误,欢迎大家指正

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值