我们想将redis用于我们的一个数据存储。我们很难“猜测”redis商店的大小,我们希望有人能提出正确的帮助。
这个商店将独家使用Sorted Sets构建。每一组都有一个介于1和10^10之间的整数。我们目前有大约8M个密钥,但我们预计很快就会达到30M。
每个集合将具有可变数量的元素,但平均值为17个元素,最大值为135,最小值为0。(如果我们需要提供其他数字,请告诉我。开发人员)。
排序后的集合中的元素将是字符串。现在我们希望它们是最短的字符串(5或6个字符?),但仍然避免冲突。分数将是时间戳。
我们目前的写入速度约为每秒500次,但预计将增长10倍,我们目前的读取速度为每秒3000次,预计还将增长10倍。
我们还将使用"dump“策略,而不是AOF。
我们的目标是使用一个单独的(但很大的) Redis主存储(也许还有一些从存储)。我们应该为redis实例分配多少内存?
发布于 2012-08-01 21:02:38
如果您使用Redis 2.6,您可以从应用于zset的ziplist内存优化中受益,因为您的大多数zset只有少量的项。
为了计算您需要的内存,您可以简单地在实例中填入与您的需求相对应的少量键,然后进行外推。对于此用例,内存消耗将随着密钥数量的增加而线性增长。
我刚刚在我的系统上试过了,我每100000个密钥有30MB的内存(按照你的规范),这导致30M密钥需要9 GB的内存。您需要留出一些余量,并为保存时使用的COW内存留出一些空间。
如果你细心的话,12 GB的服务器可能会正常工作。一台16 GB的服务器就可以了。
https://stackoverflow.com/questions/11755709
复制相似问题