优化 Redis 集群节点

Optimizing Redis cluster nodes

我了解到在 Redis 集群中,总共有 16384 个插槽分布在各个节点上。因此,如果我有一个像这样的键 entity:user:userID (like user:1234) 并且该值是一个序列化的 user 对象并说明我的应用程序是否有 500k+ 用户。它应该均匀地分配到每个插槽。我们目前总共有 6 个节点(3 个主节点和 3 个从节点),我们总是想知道什么时候再添加 2 个节点到 8 个节点。我们也会将缓存数据写入磁盘,有时我们会在持久化到磁盘时收到延迟警告。我假设如果有更多节点,每个节点要保留的数据就会更少,因此 performance/usage 资源会更好。但是除了磁盘 i/o 之外,是否有一个准确的性能测量让我们知道什么时候应该开始添加额外的节点? 谢谢!

如果您的限制因素是用于复制的磁盘 I/O,使用 SSD 可以显着提高性能。

另外两个迹象表明是时候向外扩展了,包括服务器负载和节点的已用内存。还有其他的,不过这两个很容易推理。

如果您的限制因素是由于请求的自然增加而导致的节点处理能力(例如服务器负载),则横向扩展将有助于将负载分布到更多节点。如果一个节点始终高于其他节点,这可能表明存在热分区,这是一个需要单独解决的问题。

如果由于缓存中存储的数据自然增加而导致总存储容量(例如已用内存)成为限制因素,则横向扩展将有助于增加集群的总存储容量。如果您有一个非常大的数据集并且定期使用的键集很小,则可能适用 Redis Labs 的 Redis on Flash 等技术。