Memcached概述

Memcached

Memcached是一套分布式的内存对象缓存系统,使用C语言编写,作为数据库的前端cache,缓存数据库查询结果可以减轻数据库负载。
类似一张巨大的hash表,缓存的对象以key-value对的形式存在。

工作流程

  1. 检查客户端请求的数据是否在Memcached中存在,若存在直接返回结果
  2. 若不存在,查询数据库,返回结果并把结果缓存
  3. 每次修改数据库时要同时更新Memcached数据
  4. 内存空间用完之后使用LRU算法替换缓存

特点

  1. 基于文本行的协议,可以直接通过telnet管理
  2. 基于libevent,异步io,高性能。libevent是个程序库,它将Linux的epoll、BSD类操作系统的kqueue等事件处理功能 封装成统一的接口。
  3. 对被缓存的数据没有备份,重启后对数据库产生较大的压力
  4. memcached不互相通信的分布式,分布式由客户端完成

工作原理

服务守护进程运行后,客户端连接到服务进程进行操作。目前支持python,c,php等多种客户端。服务进程基于事件的单进程单线程实现。

  • 内存管理
    内存使用slab分配器分配,这种方案可以减少内存碎片和内存分配释放次数,加快处理速度。服务进程把分配的内存分割成各种固定尺寸的块,根据待缓存数据的大小选择一个最合适大小的块存入。分配的内存不会释放,而是重复利用。
    数据大小和块的大小不匹配时会造成内存利用率低下。默认情况下不同大小的块的尺寸以2的增长因子扩大,可以使用'-f'选项调整增长因子。
  • 分布式
    分布
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值