我了解到,在Redis集群中,总共有16384个插槽分布在各个节点上。因此,如果我有一个像entity:user:userID (like user:1234)
这样的键,并且值是一个序列化的user
对象,请说我的应用程序是否有500k +用户。它应该平均分配到每个插槽。目前,我们总共有6个节点(3个主节点和3个从节点),我们一直想知道何时将另外2个节点添加到8个节点中。我们也确实将缓存数据写入磁盘,有时在将数据持久化到磁盘时也会收到延迟警告。我假设如果有更多的节点,则每个节点要保留的数据更少,因此可以提高性能/资源的利用率。但是,从磁盘I / O的角度来看,是否有一个持久的性能衡量指标可让我们知道何时开始添加其他节点?
谢谢!
答案 0 :(得分:1)
如果您的限制因素是要复制的磁盘I / O,则使用SSD可以大大提高性能。
另外两个迹象表明该进行横向扩展了,包括服务器负载和节点使用的内存。还有其他一些,但是这两个原因很简单。
如果由于请求的自然增加,限制因素是节点上的处理能力(例如服务器负载),则横向扩展将有助于在更多节点上分配负载。如果一个节点始终高于其他节点,则表明存在热分区,这是一个独立的问题。
如果由于缓存中存储的数据自然增加而导致的总存储容量(例如,已使用的内存)是限制因素,则向外扩展将有助于增加群集的总存储容量。如果您的数据集非常大,并且经常使用的密钥集很小,那么Redis Labs的Redis on Flash之类的技术可能适用。