memcache 原理探究

   之前侧重用使用,没有对原理过多的研究,这两天有同事问了一些问题,我想应该研究一下了。


使用

首先,说一下使用的经验吧,通过配置文件配好memcache的ip和端口,我一般会根据业务对client进行一下封装,写一个自己的客户端类,把memcache当做一个map来用,基本上就是用get和set,在使用的时候要注意, 你要把什么东西放进去还有更新机制

原理,特性

相信从百度或google可以搜出很多来,这里谈一下我自己的理解,当然会有很多和网上一样的。

1、memcache就是在内存中维护一个大的hash表,使用的时候类似map,通过设定的key来存取。

2、采用C/S模式,在服务端启动守护进程,监听ip和端口,是基于事件服务的(安装的时候需要libevent)。

3、一般都要配置memcache集群,集群间不进行通信,每台机子维护自己的数据,memcache做了一个工作就是将key进行hash来确定要存到哪台机器上。

4、memcache的容灾性比较差,守护进程被kill掉后,数据就丢失了。

5、关于内存分配
需要介绍几个概念:
Page   : 内存分配的最小单位。
Slabs  : 划分数据空间。相当于把内存分块。
Chunk  : 存放缓存数据的单位。

当内存空间紧张时,会使用LRU进行内存分配。

有不对的地方,欢迎大家指正呀 O(∩_∩)O哈哈~



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值