二进制协议
不需要文本协议的解析处理,使得memcached性能更高
分布式
将key保存在不同的服务器上
性能限制
请求最大15000qps
流量400Mbps
连接数超过10000个
分布式hash算法
取模
求得键整数的hash值,除以服务器台数,所得的余数决定服务器
缺点: 当添加或者移除服务器时,缓存重组的代价相当巨大,会影响缓存命中率
一致性哈希算法(Consistent Hashing)
首先求出memcached节点的哈希值,并将其配置到0–2^32的圆上。然后用同样的方法求出存储数据的键的hash值,并映射到圆上。然后从存储数据映射的位置顺时针查找,将数据保存到找到的第一个服务器上。
Consistent Hashing最大程度的抑制了键的重新分布,只有从增加服务器地点到逆时针相邻第一台服务器之间的键会受到影响。
有的Consistent Hashing还采用了虚拟节点的思想,使用一般hash函数的话,服务器的映射地点分布非常不均匀。使用虚拟节点为每个服务器在环上分配100–200个点,这样能抑制分布不均匀,最大限度的减小服务器增减时缓存重新分布。