, . , SORT. . O (log (N)) , . . - .
ZRANGEBYSCORE key min max WITHSCORES [LIMIT offset count], .
, "", ZREVRANGEBYSCORE .
: SCORES, , 15 . , SCORE -999999999999999 999999999999999. . , Redis (float) redis-string.
, Zulu Time: -20140313122802 . 1 100 , , . - float64, , " ", .
10 , (CCY CCYY), 10000 .
, ZRANGEBYSCORE REV. -inf ( ) LIMIT 0 100, 100 .
members ( 'keys', , ) SCORE, , SCORE .
, , TW
OP ( ZSET) (GET/SET HGET/HSET). JOIN , ZRANGEBYSCORE .
, Lua script. Lua script . EVAL , SCRIPT EXISTS, SCRIPT LOAD EVALSHA. , script .
example.lua:
local r={}
local zkey=KEYS[1]
local a=redis.call('zrangebyscore', zkey, KEYS[2], KEYS[3], 'withscores', 'limit', 0, KEYS[4])
for i=1,#a,2 do
r[i]=a[i+1]
r[i+1]=redis.call('get', a[i])
end
return r
( , ):
redis-cli -p 14322 set activity:1 act1JSON
redis-cli -p 14322 set activity:2 act2JSON
redis-cli -p 14322 zadd feed 1 activity:1
redis-cli -p 14322 zadd feed 2 activity:2
redis-cli -p 14322 eval '$(cat example.lua)' 4 feed '-inf' '+inf' 100
:
1) "1"
2) "act1JSON"
3) "2"
4) "act2JSON"