MemCached特性与限制

  1. MemCache中可以保存的item数据量是没有限制的,只要内存足够
  2. MemCache单进程在32位机中最大使用内存为2G,这个之前的文章提了多次了,64位机则没有限制
  3. Key最大为250个字节,超过该长度无法存储
  4. 单个item最大数据是1MB,超过1MB的数据不予存储
  5. MemCache服务端是不安全的,比如已知某个MemCache节点,可以直接telnet过去,并通过flush_all让已经存在的键值对立即失效,所以MemCache服务器最好配置到内网环境,通过防火墙制定可访问客户端
  6. 不能够遍历MemCache中所有的item,因为这个操作的速度相对缓慢且会阻塞其他的操作
  7. MemCached的高性能源自于两阶段哈希结构:第一阶段在客户端,通过Hash算法根据Key值算出一个节点;第二阶段在服务端,通过一个内部的Hash算法,查找真正的item并返回给客户端。从实现的角度看,MemCache是一个非阻塞的、基于事件的服务器程序
  8. MemCache设置添加某一个Key值的时候,传入expiry为0表示这个Key值永久有效,这个Key值也会在30天之后失效,见memcache.c的源代码:
#define REALTIME_MAXDELTA 60*60*24*30
static rel_time_t realtime(const time_t exptime) {
       if (exptime == 0) return 0;
       if (exptime > REALTIME_MAXDELTA) {
              if (exptime <= process_started)
                     return (rel_time_t)1;
              return (rel_time_t)(exptime - process_started);
       } else {
              return (rel_time_t)(exptime + current_time);
       }
}

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据