Memcache特性和限制

1、MemCache中可以保存的item数据量是没有限制的,只要内存足够
2、MemCache单进程在32位机中最大使用内存为2G,这个之前的文章提了多次了,64位机则认为没有限制
3、Key最大为250个字节,超过该长度无法存储
4、单个item最大数据是1MB,超过1MB的数据不予存储
5、MemCache服务端是不安全的,比如已知某个MemCache节点,可以直接telnet过去,并通过flush_all让已经存在的键值对立即失效
6、不能够遍历MemCache中所有的item,因为这个操作的速度相对缓慢且会阻塞其他的操作
7、MemCache的高性能源自于两阶段哈希结构:第一阶段在客户端,通过Hash算法根据Key值算出一个节点;第二阶段在服务端,通过一个内部的Hash算法,查找真正的item并返回给客户端。从实现的角度看,MemCache是一个非阻塞的、基于事件的服务器程序

8、MemCache设置添加某一个Key值的时候,传入expiry为0表示这个Key值永久有效,这个Key值也会在30天之后失效,见memcache.c的源代码:




1.  key值最大长度?

memcachedkey最大长度是250个字符

 

注意250memcached服务器端内部的限制(可以修改)

如果您使用的客户端支持"key的前缀"或类似特性,那么key(前缀+原始key)的最大长度是可以超过250个字符的。

我们推荐使用使用较短的key,因为可以节省内存和带宽。

key只要不重复就行,如果太大浪费内存。

 

2.key 不能有空格和控制字符

 

the keymust not include controlcharacters or whitespace.

 

 

3.  item的过期时间限制?

过期时间最大30

如果不注意这个细节,过期时间设置大于了30,值会设置不进缓存

 

4.  最大能存储多大的单个item?

1MB

如果你的数据大于1MB,可以考虑在客户端压缩或拆分到多个key中。


阅读更多
个人分类: 缓存
相关热词: memcache
上一篇php密码连接redis
下一篇redis可视化工具(Redis Desktop Manager) 连接linux
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭