Memcached

Memcached是一个开源的、支持高性能、高并发的分布式内存缓存系统,由C语言编写,总共2000多行代码。

  • Mem 是内存的意思
  • cache是缓存的意思
  • 最后一个字符d,是daemon的意思,代表是服务器端守护进程模式服务

内存管理机制 Memcached采用了如下机制:

  • 采用slab内存分配机制。
  • 采用LRU对象清除机制。
  • 采用hash机制快速检索item
  • 开启Memcached缓存服务器时要提前预热

Memcached内存管理

malloc的全称是memory allocation,中文名称动态内存分配, 当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态分配内存。

Memcached在集群中session共享案例——大量小数据缓存,不需要入库

session.save_handler = memcache
session.save_path = "tcp:// 10.0.0.19:11211"

Memcached在集群中的session共享存储的优缺点 :

优点 缺点
读写速度上会比普通files速度快很多 session数据都保存在memory中,持久化方面有所欠缺,但对session数据来说不是问题。
可以解决多个服务器共用session的难题 一般是单台,如果部署多台,多台之间无法数据同步。通过hash算法分配依然有session丢失的问题

可以用其他的持久化系统存储sessions,例如:Redis、ttserver来替代Memcached。 高性能高并发场景,cookies效率比session要好很多,因此,大网站都会用cookies解决会话共享问题