假设我们在服务器 A 上有 3Gb 键值存储。我开始觉得我们需要另一台服务器(服务器 B)。因此,我必须将服务器 A 数据分离到碎片(服务器 A、服务器 B)上,但是……服务器 A 上的所有键当前都按原样表示(例如,comment_ids:user_id:10
)。
问题 1:散列当前 key 名称并在分片上分离所有数据的最佳做法是什么?
问题 #2:向分片行添加额外服务器的最佳做法是什么?
PS:抱歉我的英语不好,但我希望我的回答对你来说是清楚的。
谢谢。
PS:我已经用 redis
标签标记了这个问题,但实际上它根本不是关于 redis 的,而是所有键值存储。
最佳答案
一致性哈希往往是一个不错的选择 http://en.wikipedia.org/wiki/Consistent_hashing
关于scalability - 如何分片现有的键值存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3641309/