根据Redis's memory optimization page,可以设置可配置的set-max-intset-entries
,以便为大型整数集优化内存。我用小于2M的整数进行了一些测试,将set-max-intset-entries
设置为10000.我发现每个int在集合小于max时平均大约4个字节,并且当长度大于max时,每个int大约60个字节
然而,内存优化页面还表示在增加此最大值时会有CPU /内存权衡。性能权衡取决于何时增加这个最大值,有没有什么方法可以运行测试,所以我可以量化我正在进行的权衡?
答案 0 :(得分:0)
CPU的权衡应该是运行相关命令(如SADD或SCARD)的时间。
Commissar使用的基本过程是在运行测试之前和之后拉出命令符,并确定不同的好处,例如SADD命令。使用设置表执行此操作并查看结果。当然,您希望反复运行测试以获得大样本量。
应该注意的是,您希望在更改内存设置的测试之间进行保存和重新启动,因为Redis在更改该设置时不会重组数据。这是保留数据和使用不同设置的最简单方法。
一旦达到阈值,您应该看到运行命令集的时间增加(或者如果您以其他方式继续运行则减少)。