当前位置:  开发笔记 > 后端 > 正文

Redis的排序集会扩展吗?

如何解决《Redis的排序集会扩展吗?》经验,为你挑选了1个好方法。

这可能更多是理论上的问题,但我正在寻找务实的答案。

我计划使用Redis的排序集将模型的排名基于计算出的值存储在数据库中。目前,我的数据集很小(该集中的250个成员)。我想知道排序后的集合是否可以扩展到5,000个成员或更大。Redis声称最大值为1GB,而我的值是我模型的ID,因此我并不真正担心排序集的值的可伸缩性。

ZRANGE的时间复杂度为O(log(N)+ M)。如果我最经常尝试从集合中获得排名前5位的项目,则可能要关注N个集合项目的log(N)。

我还计划使用ZINTERSTORE,它的时间复杂度为O(N * K)+ O(M * log(M))。我计划经常使用ZINTERSTORE,并使用ZRANGE 0 -1检索结果

我想我的问题有两个方面。

    Redis排序集是否可以扩展到5,000个成员而没有问题?10,000?50,000?

    将ZRANGE和ZINTERSTORE(与ZRANGE结合使用)在应用于大型设备时是否会开始显示性能问题?

The Real Bil.. 5

我对排序集中的数十万个键没有任何问题。当然,要获取整个集合将需要更长的时间,但这是可以预期的-即使从I / O角度来看也是如此。

一个这样的实例是在一个服务器上,其中使用了多个数据库,并在其中排序了几个具有50k至> 150k密钥的集合。高写入率是一种规范,因为它们使用大量的zincrby命令,这些命令是通过实时Web服务器日志分析来达到的,每天的峰值记录超过1.5亿条。而且我一次要存储一个星期。

根据我的经验,我会说去看看。除非您的服务器硬件真的是低端的,否则可能会很好。



1> The Real Bil..:

我对排序集中的数十万个键没有任何问题。当然,要获取整个集合将需要更长的时间,但这是可以预期的-即使从I / O角度来看也是如此。

一个这样的实例是在一个服务器上,其中使用了多个数据库,并在其中排序了几个具有50k至> 150k密钥的集合。高写入率是一种规范,因为它们使用大量的zincrby命令,这些命令是通过实时Web服务器日志分析来达到的,每天的峰值记录超过1.5亿条。而且我一次要存储一个星期。

根据我的经验,我会说去看看。除非您的服务器硬件真的是低端的,否则可能会很好。

推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有