scalability - 如何分片现有的键值存储?

标签 scalability redis key-value-store

假设我们在服务器 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/

相关文章:

Redis 与 Hazelcast 作为 session 存储

xcode - (Xcode) 启用 iCloud 时权限被拒绝

c# - int 或 long 变量类型以实现长期可扩展性

雷迪斯 : Querying based on matching key pattren

go - 添加结构的平面图

ios - 存储 session 信息 - 另一个核心数据表或 "key-value"格式(YAML,JSON)的单独 session 文件?

java - 无法使用 Scala 从 Cassandra DB 的原始数据类型映射读取数据

php - 在 MySQL 中缩放递增计数器(用于跟踪页面浏览量)

javascript - ReactJS:如何优化自上而下的渲染流程

MySQL服务器在用户之间拆分扩展数据库/表