二進制協議
不需要文本協議的解析處理,使得memcached性能更高
分布式
將key保存在不同的服務器上
性能限制
請求最大15000qps
流量400Mbps
連接數超過10000個
分布式hash算法
取模
求得鍵整數的hash值,除以服務器臺數,所得的余數決定服務器
缺點: 當添加或者移除服務器時,緩存重組的代價相當巨大,會影響緩存命中率
一致性哈希算法(Consistent Hashing)
首先求出memcached節點的哈希值,并將其配置到0--2^32的圓上。然后用同樣的方法求出存儲數據的鍵的hash值,并映射到圓上。然后從存儲數據映射的位置順時針查找,將數據保存到找到的第一個服務器上。
Consistent Hashing最大程度的抑制了鍵的重新分布,只有從增加服務器地點到逆時針相鄰第一臺服務器之間的鍵會受到影響。
有的Consistent Hashing還采用了虛擬節點的思想,使用一般hash函數的話,服務器的映射地點分布非常不均勻。使用虛擬節點為每個服務器在環上分配100--200個點,這樣能抑制分布不均勻,最大限度的減小服務器增減時緩存重新分布。