ZRANGESTORE Redis 6.2.0 之前的版本

问题描述

基本上我想将排序集中的前 5 个存储在不同的集合中。 在 redis 6.2 中,我可以使用 ZRANGESTOREREV 选项来完成。 低版本的替代品是什么?

解决方法

看起来这满足了我的需求:

eval "
redis.call('DEL','final') 
local set=redis.call('ZREVRANGE','out',4,'withscores') 
for i = 1,#set/2 do 
  set[2*i-1],set[2*i] = set[2*i],set[2*i-1] 
end 
return redis.call('ZADD','final',unpack(set))
" 0