假如我有十台缓存服务器 ,
1:怎样的算法可以将 一个数据均匀的分配到缓存服务器上,避免某一台服务器压力过高,
2:然后怎样从十台缓存服务器中的某一台读取缓存数据;
谈谈php的具体实现方法
最简单的就是拉一个哈希函数出来(比如jshash,sdbmhash,或者直接用stl里头对string的hash都可以):hash(key) % 10 => 给出机器的ID
。存取都用这样的规则,就没有问题了。
不过这种简单方式存在的问题是,可用性和扩展性降低了。任意一台机器挂掉,相应的数据就没地方存,不能自动保存到其他机器。新增机器的时候也很麻烦。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。