一个
ZRANGEBYSCORE成本
O(log(N) + M),其中
N=|items in your set|和
M=|items you'reselecting|。因此,先进行
ZRANGEBYSCORE然后再进行M次
GET运算仅
O(long(N)+M+M)=
=,
O(log(N)+M)并且最多慢两倍。来回移动网络可能会造成很大的影响,但是由于每个获取 *** 作都是独立的 *** 作,因此可以通过管道进行传输。您还可以将整个内容放入Lua脚本中,并且只进行一次来回移动,这将是最佳选择。我要说的是99%的确定性比在SQL中做同样的事情要快。
另外,如果这对您来说是非常频繁的 *** 作,则可以通过将整个对象存储在排序集中而不是仅存储id中来提高处理速度。你必须
key = object enpredas json,
score = timestamp。这样就可以节省您
O(M)的 *** 作时间,而无需执行任何 *** 作
GET。
这是否是一种好的处理方式,实际上取决于您的用例。您真正需要多少速度?传统数据库的其他功能对您来说有多重要?请记住,与传统数据库相比,Redis不仅仅是客户端可访问的数据结构,而且它必须将所有内容存储在RAM中。要知道这是否适合您,我们需要更多信息。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)