当一个请求到来,我们如何决定将这个请求的内容缓存在那台Redis服务器上?我们一一道来....分配方法
随机分配
假设我们有X台服务器,当一个请求来到的时候,我们获取一个0-X的随机数,然后将内容缓存在该服务器上....一致性hash原理
其实本质上,一致性hash也是hash取模,只是是永远的对2的32次方-1取模....redis的key都是字符串,而字符串的hashcode方法是可能会返回负值的,而一致性hash环是只有正值的,因此需要我们使用别的hash算法.(淡然你也可以粗暴的进行取绝对值)....Java实现一致性hash算法缓存客户端
Java中提供了ConcurrentSkipListMap类,可以很好的使用在这里,不仅可以轻松的模拟环状结构,并发安全且使用跳表结构的ConcurrentSkipListMap