memcache是一个高性能的分布式缓存系统,基于key-value存储。memcache的api支持各种语言编写的客户端。
组成部分
- 连接memcache的客户端软件
- 基于客户端系统的hash算法,主要用于根据key去寻找服务端的memcache服务器
- LRU,决定什么时候丢弃掉旧数据
客户端和服务端的逻辑各占一半
整个memcache实现,一部分是在客户端,一部分是在服务端。客户端根据一个key,可以知道去哪台服务端机器读取或者写数据,同时,如果目标服务端挂掉了,客户端也知道如何处理。服务端主要负责存储数据和抓取数据,同时也管理数据的有效性。
服务端memcache节点互相是不联系的
服务器之间不交流,不广播,不同步,不拷贝数据。如果缓存数据失效了,直接利用客户端删除即可,因为每份数据都是每台服务端机器独占的。
O(1)
memcache提供的所有命令速度都很快。O(1)的性能。