mirror of https://github.com/ledisdb/ledisdb.git
update lua client; add test cases
This commit is contained in:
parent
6a2f1bda0b
commit
e8cb0ba612
|
@ -36,6 +36,10 @@ local commands = {
|
|||
"mset",
|
||||
"set",
|
||||
"setnx",
|
||||
"ttl",
|
||||
"expire",
|
||||
"expireat",
|
||||
"persist",
|
||||
|
||||
--[[hash]]
|
||||
"hdel",
|
||||
|
@ -49,17 +53,29 @@ local commands = {
|
|||
--[["hmset",]]
|
||||
"hset",
|
||||
"hvals",
|
||||
--[[ledisdb special commands]]
|
||||
"hclear",
|
||||
"hmclear",
|
||||
"hexpire",
|
||||
"hexpireat",
|
||||
"httl",
|
||||
"hpersist",
|
||||
|
||||
--[[list]]
|
||||
"lindex",
|
||||
"llen",
|
||||
"lpop",
|
||||
"lrange",
|
||||
"lpush",
|
||||
"lrange",
|
||||
"rpop",
|
||||
"rpush",
|
||||
--[[ledisdb special commands]]
|
||||
"lclear",
|
||||
"lmclear",
|
||||
"lexpire",
|
||||
"lexpireat",
|
||||
"lttl",
|
||||
"lpersist",
|
||||
|
||||
--[[zset]]
|
||||
"zadd",
|
||||
|
@ -76,7 +92,13 @@ local commands = {
|
|||
"zrevrank",
|
||||
"zrevrangebyscore",
|
||||
"zscore",
|
||||
--[[ledisdb special commands]]
|
||||
"zclear",
|
||||
"zmclear",
|
||||
"zexpire",
|
||||
"zexpireat",
|
||||
"zttl",
|
||||
"zpersist",
|
||||
|
||||
--[[server]]
|
||||
"ping",
|
||||
|
@ -85,7 +107,6 @@ local commands = {
|
|||
}
|
||||
|
||||
|
||||
|
||||
local mt = { __index = _M }
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,887 @@
|
|||
local ledis = require "ledis"
|
||||
local cjson = require "cjson"
|
||||
local lds = ledis:new()
|
||||
|
||||
lds:set_timeout(1000)
|
||||
|
||||
-- connect
|
||||
local ok, err = lds:connect("127.0.0.1", "6380")
|
||||
if not ok then
|
||||
ngx.say("failed to connect:", err)
|
||||
return
|
||||
end
|
||||
|
||||
|
||||
function cleanUp()
|
||||
lds:del("mykey", "key1", "key2", "key3", "non_exists_key")
|
||||
lds:hmclear("myhash", "myhash1", "myhash2")
|
||||
lds:lclear("mylist")
|
||||
lds:zmclear("myset", "myset1", "myset2")
|
||||
return
|
||||
end
|
||||
|
||||
cleanUp()
|
||||
|
||||
|
||||
ngx.say("======================= K/V =====================\n")
|
||||
|
||||
--[[KV]]--
|
||||
|
||||
-- decr
|
||||
local res, err = lds:decr("mykey")
|
||||
if not res then
|
||||
ngx.say("failed to decr:", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("DECR, should be: -1 <=> ", res)
|
||||
|
||||
lds:del("mykey")
|
||||
|
||||
-- decrby
|
||||
|
||||
local res, err = lds:decrby("mykey", 10)
|
||||
if not res then
|
||||
ngx.say("failed to decrby:", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("DECRBY, should be: -10 <=> ", res)
|
||||
lds:del("mykey")
|
||||
|
||||
-- del
|
||||
|
||||
lds:set("key1", "foo")
|
||||
lds:set("key2", "bar")
|
||||
local res, err = lds:del("key1", "key2")
|
||||
if not res then
|
||||
ngx.say("failed to del:", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("DEL, should be: 2 <=> 2")
|
||||
|
||||
--exists
|
||||
|
||||
lds:set("mykey", "foo")
|
||||
res, err = lds:exists("mykey")
|
||||
if not res then
|
||||
ngx.say("failed to exists: ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("EXISTS, should be 1 <=>", res)
|
||||
lds:del("mykey")
|
||||
|
||||
res, err = lds:exists("non_exists_key")
|
||||
if not res then
|
||||
ngx.say("failed to exists: ", err)
|
||||
return
|
||||
end
|
||||
ngx.say("EXISTS, should be 0 <=>", res)
|
||||
lds:del("non_exists_key")
|
||||
|
||||
|
||||
-- get
|
||||
|
||||
lds:set("mykey", "foo")
|
||||
res, err = lds:get("mykey")
|
||||
if not res then
|
||||
ngx.say("failed to get: ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("GET, should be foo <=> ", res)
|
||||
lds:del("mykey")
|
||||
|
||||
|
||||
-- getset
|
||||
|
||||
lds:set("mykey", "foo")
|
||||
res, err = lds:getset("mykey", "bar")
|
||||
if not res then
|
||||
ngx.say("failed to getset ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("GETSET, should be foo <=> ", res)
|
||||
res, err = lds:get("mykey")
|
||||
ngx.say("GET, should be bar <=>", res)
|
||||
lds:del("mykey")
|
||||
|
||||
-- incr
|
||||
|
||||
lds:set("mykey", "10")
|
||||
res, err = lds:incr("mykey")
|
||||
if not res then
|
||||
ngx.say("failed to incr ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("INCR should be 11 <=>", res)
|
||||
lds:del("mykey")
|
||||
|
||||
-- incrby
|
||||
|
||||
lds:set("mykey", "10")
|
||||
res, err = lds:incrby("mykey", 10)
|
||||
if not res then
|
||||
ngx.say("failed to incrby ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("INCRBY should be 20 <=>", res)
|
||||
lds:del("mykey")
|
||||
|
||||
-- mget
|
||||
lds:set("key1", "foo")
|
||||
lds:set("key2", "bar")
|
||||
res, err = lds:mget("key1", "key2")
|
||||
if not res then
|
||||
ngx.say("failed to mget ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("MGET should be foobar <=>", res)
|
||||
lds:del("key1", "key2")
|
||||
|
||||
-- mset
|
||||
|
||||
res, err = lds:mset("key1", "foo", "key2", "bar")
|
||||
if not res then
|
||||
ngx.say("failed to command ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("MSET should be OK <=>", res)
|
||||
lds:del("key1", "key2")
|
||||
|
||||
|
||||
|
||||
-- set
|
||||
ok, err = lds:set("mykey", "foo")
|
||||
if not ok then
|
||||
ngx.say("failed to set: ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("SET, should be OK <=>", ok)
|
||||
lds:del("mykey")
|
||||
|
||||
-- setnx
|
||||
res, err = lds:setnx("mykey", "foo")
|
||||
if not res then
|
||||
ngx.say("failed to setnx ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("setnx should be 1 <=>", res)
|
||||
res, err = lds:setnx("mykey", "foo")
|
||||
ngx.say("setnx should be 0 <=>", res)
|
||||
lds:del("mykey")
|
||||
|
||||
-- expire
|
||||
|
||||
lds:set("mykey", "foo")
|
||||
res, err = lds:expire("mykey", 60)
|
||||
if not res then
|
||||
ngx.say("failed to expire ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("EXPIRE should be 1 <=> ", res)
|
||||
lds:del("mykey")
|
||||
|
||||
|
||||
-- expireat
|
||||
lds:set("mykey", "foo")
|
||||
res, err = lds:expire("mykey", 14366666666)
|
||||
if not res then
|
||||
ngx.say("failed to expireat", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("EXPIREAT 1 <=>", res)
|
||||
lds:del("mykey")
|
||||
|
||||
-- ttl
|
||||
|
||||
lds:set("mykey", "foo")
|
||||
lds:expire("mykey", 100)
|
||||
res, err = lds:ttl("mykey")
|
||||
if not res then
|
||||
ngx.say("failed to ttl ", err)
|
||||
return
|
||||
end
|
||||
|
||||
if not (0 < res and res <= 100) then
|
||||
ngx.say("failed to ttl")
|
||||
return
|
||||
end
|
||||
ngx.say("TTL ", res)
|
||||
lds:del("mykey")
|
||||
|
||||
-- persist
|
||||
|
||||
lds:set("mykey", "foo")
|
||||
lds:expire("mykey", 100)
|
||||
res, err = lds:persist("mykey")
|
||||
|
||||
if not res then
|
||||
ngx.say("failed to persist", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("PERSIST should be 1 <=>", res)
|
||||
lds:del("mykey")
|
||||
|
||||
-- [[ HASH ]]
|
||||
|
||||
ngx.say("\n=================== HASH =====================\n")
|
||||
|
||||
-- hdel
|
||||
|
||||
res, err = lds:hset("myhash", "field", "foo")
|
||||
if not res then
|
||||
ngx.say("failed to HDEL", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("HDEL should be 1 <=>", res)
|
||||
lds:hclear("myhash")
|
||||
|
||||
-- hexists
|
||||
lds:hset("myhash", "field", "foo")
|
||||
res, err = lds:hexists("myhash", "field")
|
||||
if not res then
|
||||
ngx.say("failed to HEXISTS", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("HEXISTS should be 1 <=>", res)
|
||||
lds:hclear("myhash")
|
||||
|
||||
-- hget
|
||||
lds:hset("myhash", "field", "foo")
|
||||
res, err = lds:hget("myhash", "field")
|
||||
if not res then
|
||||
ngx.say("failed to HGET ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("HGET should be foo <=>", res)
|
||||
lds:hclear("myhash")
|
||||
|
||||
-- hgetall
|
||||
lds:hmset("myhash", "field1", "foo", "field2", "bar")
|
||||
res, err = lds:hgetall("myhash")
|
||||
if not res then
|
||||
ngx.say("failed to HGETALL ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("HGETALL should be field1foofield2bar <=>", res)
|
||||
lds:hclear("myhash")
|
||||
|
||||
-- hincrby
|
||||
res, err = lds:hincrby("myhash", "field", 1)
|
||||
if not res then
|
||||
ngx.say("failed to HINCRBY ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("HINCRBY should be 1 <=>", res)
|
||||
lds:hclear("myhash")
|
||||
|
||||
-- hkeys
|
||||
|
||||
lds:hmset("myhash", "field1", "foo", "field2", "bar")
|
||||
res, err = lds:hkeys("myhash")
|
||||
if not res then
|
||||
ngx.say("failed to HKEYS", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("HKEYS should be field1field2 <=> ", res)
|
||||
lds:hclear("myhash")
|
||||
|
||||
|
||||
-- hlen
|
||||
|
||||
lds:hset("myhash", "field", "foo")
|
||||
res, err = lds:hlen("myhash")
|
||||
if not res then
|
||||
ngx.say("failed to HLEN ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("HLEN should be 1 <=>", res)
|
||||
lds:hclear("myhash")
|
||||
|
||||
|
||||
-- hmget
|
||||
|
||||
lds:hmset("myhash", "field1", "foo", "field2", "bar")
|
||||
res, err = lds:hmget("myhash", "field1", "field2")
|
||||
if not res then
|
||||
ngx.say("failed to HMGET", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("HMGET should be foobar <=>", res)
|
||||
lds:hclear("myhash")
|
||||
|
||||
|
||||
|
||||
-- hmset
|
||||
|
||||
res, err = lds:hmset("myhash", "field1", "foo", "field2", "bar")
|
||||
if not res then
|
||||
ngx.say("failed to HMSET ", err)
|
||||
return
|
||||
end
|
||||
|
||||
local l = lds:hlen("myhash")
|
||||
if l == 2 then
|
||||
ngx.say("HMSET tested !")
|
||||
else
|
||||
ngx.say("HMSET failed")
|
||||
end
|
||||
|
||||
res, err = lds:hclear("myhash")
|
||||
|
||||
|
||||
--hset
|
||||
res, err = lds:hset("myhash", "field", "foo")
|
||||
if not res then
|
||||
ngx.say("failed to HSET", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("HSET should be 1 <=> ", res)
|
||||
lds:hclear("myhash")
|
||||
|
||||
--hvals
|
||||
lds:hset("myhash", "field", "foo")
|
||||
res, err = lds:hvals("myhash")
|
||||
if not res then
|
||||
ngx.say("failed to HVALS", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("HVALS should be foo <=>", res)
|
||||
lds:hvals("myhash")
|
||||
|
||||
-- hclear
|
||||
|
||||
--FIXME: why 3?
|
||||
|
||||
lds:hset("myhash", "field", "foo")
|
||||
res, err = lds:hclear("myhash")
|
||||
|
||||
if not res then
|
||||
ngx.say("failed to HCLEAR", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("HCLEAR should be 1 <=>", res)
|
||||
lds:hclear("myhash")
|
||||
|
||||
|
||||
-- hmclear
|
||||
|
||||
lds:hset("myhash1", "field1", "foo")
|
||||
lds:hset("myhash2", "field2", "bar")
|
||||
res, err = lds:hmclear("myhash1", "myhash2")
|
||||
if not res then
|
||||
ngx.say("failed to HMCLEAR ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("HMCLEAR should be 2 <=>", res)
|
||||
|
||||
|
||||
-- hexpire
|
||||
lds:hset("myhash", "field", "foo")
|
||||
res, err = lds:hexpire("myhash", 100)
|
||||
if not res then
|
||||
ngx.say("failed to HEXPIRE", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("HEXPIRE should be 1 <=>", res)
|
||||
lds:hclear("myhash")
|
||||
|
||||
|
||||
-- hexpireat
|
||||
|
||||
lds:hset("myhash", "field", "foo")
|
||||
res, err = lds:hexpireat("myhash", 14366666666)
|
||||
if not res then
|
||||
ngx.say("failed to HEXPIREAT", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("HEXPIREAT should be 1 <=>", res)
|
||||
lds:hclear("myhash")
|
||||
|
||||
|
||||
-- hpersist
|
||||
lds:hset("myhash", "field", "foo")
|
||||
lds:hexpire("myhash", 100)
|
||||
res, err = lds:hpersist("myhash")
|
||||
|
||||
if not res then
|
||||
ngx.say("failed to hpersist", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("HPERSIST should be 1 <=>", res)
|
||||
lds:hclear("myhash")
|
||||
|
||||
|
||||
--httl
|
||||
lds:hset("myhash", "field", "foo")
|
||||
lds:hexpire("myhash", 100)
|
||||
res, err = lds:httl("myhash")
|
||||
if not res then
|
||||
ngx.say("failed to HTTL ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("HTTL value: ", res)
|
||||
lds:hclear("myhash")
|
||||
|
||||
|
||||
ngx.say("\n================== LIST ====================\n")
|
||||
|
||||
|
||||
-- [[ LIST ]]
|
||||
|
||||
-- lindex
|
||||
lds:rpush("mylist", "one", "two", "three")
|
||||
res, err = lds:lindex("mylist", 0)
|
||||
if not res then
|
||||
ngx.say("failed to LINDEX ", err)
|
||||
return
|
||||
end
|
||||
|
||||
|
||||
ngx.say("LINDEX should be one <=>", res)
|
||||
lds:lclear("mylist")
|
||||
|
||||
|
||||
-- llen
|
||||
lds:rpush("mylist", "foo", "bar")
|
||||
res, err = lds:llen("mylist")
|
||||
if not res then
|
||||
ngx.say("failed to LLEN ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("LLEN should be 2 <=>", res)
|
||||
lds:lclear("mylist")
|
||||
|
||||
|
||||
-- lpop
|
||||
lds:rpush("mylist", "one", "two", "three")
|
||||
res, err = lds:lpop("mylist")
|
||||
if not res then
|
||||
ngx.say("failed to LPOP ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("LPOP should be one <=>", res)
|
||||
lds:lclear("mylist")
|
||||
|
||||
-- lrange
|
||||
lds:rpush("mylist", "one", "two", "three")
|
||||
res, err = lds:lrange("mylist", 0, 0)
|
||||
if not res then
|
||||
ngx.say("failed to one ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("LRANGE should be one <=>", res)
|
||||
lds:lclear("mylist")
|
||||
|
||||
|
||||
|
||||
-- lpush
|
||||
|
||||
res, err = lds:lpush("mylist", "one", "two")
|
||||
if not res then
|
||||
ngx.say("failed to LPUSH ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("LPUSH should be 2 <=>", res)
|
||||
lds:lclear("mylist")
|
||||
|
||||
|
||||
-- rpop
|
||||
|
||||
lds:rpush("mylist", "one", "two")
|
||||
res, err = lds:rpop("mylist")
|
||||
if not res then
|
||||
ngx.say("failed to RPOP ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("RPOP should be two <=>", res)
|
||||
lds:lclear("mylist")
|
||||
|
||||
-- rpush
|
||||
res, err = lds:rpush("mylist", "one", "two")
|
||||
if not res then
|
||||
ngx.say("failed to RPUSH ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("RPUSH should be 2 <=>", res)
|
||||
lds:lclear("mylist")
|
||||
|
||||
-- lclear
|
||||
lds:rpush("mylist", "one", "two")
|
||||
res, err = lds:lclear("mylist")
|
||||
if not res then
|
||||
ngx.say("failed to LCLEAR ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("LCLEAR should be 2 <=>", res)
|
||||
|
||||
|
||||
-- lexpire
|
||||
lds:rpush("mylist", "one")
|
||||
res, err = lds:lexpire("mylist", 100)
|
||||
if not res then
|
||||
ngx.say("failed to LEXPIRE", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("LEXPIRE should be 1 <=>", res)
|
||||
lds:lclear("mylist")
|
||||
|
||||
|
||||
-- lexpireat
|
||||
|
||||
lds:rpush("mylist", "one")
|
||||
res, err = lds:lexpireat("mylist", 14366666666)
|
||||
if not res then
|
||||
ngx.say("failed to LEXPIREAT", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("LEXPIREAT should be 1 <=>", res)
|
||||
lds:lclear("mylist")
|
||||
|
||||
|
||||
-- lpersist
|
||||
lds:rpush("mylist", "one", "two")
|
||||
lds:lexpire("mylist", 100)
|
||||
res, err = lds:lpersist("mylist")
|
||||
|
||||
if not res then
|
||||
ngx.say("failed to lpersist", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("LPERSIST should be 1 <=>", res)
|
||||
lds:hclear("mylist")
|
||||
|
||||
|
||||
--lttl
|
||||
lds:rpush("mylist", "field", "foo")
|
||||
lds:lexpire("mylist", 100)
|
||||
res, err = lds:lttl("mylist")
|
||||
if not res then
|
||||
ngx.say("failed to LTTL ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("LTTL value: ", res)
|
||||
lds:lclear("mylist")
|
||||
|
||||
|
||||
ngx.say("\n==================== ZSET =====================\n")
|
||||
|
||||
-- [[ ZSET ]]
|
||||
|
||||
-- zadd
|
||||
res, err = lds:zadd("myset", 1, "one")
|
||||
if not res then
|
||||
ngx.say("failed to ZADD ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("ZADD should be 1 <=>", res)
|
||||
lds:zclear("myset")
|
||||
|
||||
-- zcard
|
||||
lds:zadd("myset", 1, "one", 2, "two")
|
||||
|
||||
res, err = lds:zcard("myset")
|
||||
if not res then
|
||||
ngx.say("failed to ZCARD ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("ZCARD should be 2 <=>", res)
|
||||
lds:zclear("myset")
|
||||
|
||||
|
||||
-- zcount
|
||||
lds:zadd("myset", 1, "one", 2, "two")
|
||||
res, err = lds:zcount("myset", "-inf", "+inf")
|
||||
if not res then
|
||||
ngx.say("failed to ZCOUNT ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("ZCOUNT should be 2 <=>", res)
|
||||
lds:zclear("myset")
|
||||
|
||||
--zincrby
|
||||
lds:zadd("myset", 1, "one")
|
||||
res, err = lds:zincrby("myset", 2, "one")
|
||||
if not res then
|
||||
ngx.say("failed to ZINCRBY ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("ZINCRBY should be 3 <=>", res)
|
||||
lds:zclear("myset")
|
||||
|
||||
|
||||
--zrange
|
||||
lds:zadd("myset", 1, "one", 2, "two", 3, "three")
|
||||
res, err = lds:zrange("myset", 0, -1, "WITHSCORES")
|
||||
if not res then
|
||||
ngx.say("failed to ZRANGE ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("ZRANGE should be one1two2three3<=>", res)
|
||||
lds:zclear("myset")
|
||||
|
||||
|
||||
--zrangebyscore
|
||||
lds:zadd("myset", 1, "one", 2, "two", 3, "three")
|
||||
res, err = lds:zrangebyscore("myset", 1, 2)
|
||||
if not res then
|
||||
ngx.say("failed to ZRANGEBYSCORE ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("ZRANGEBYSCORE should be onetwo <=>", res)
|
||||
lds:zclear("myset")
|
||||
|
||||
|
||||
-- zrank
|
||||
lds:zadd("myset", 1, "one", 2, "two", 3, "three")
|
||||
res, err = lds:zrank("myset", "three")
|
||||
if not res then
|
||||
ngx.say("failed to ZRANK ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("ZRANK should be 2 <=>", res)
|
||||
lds:zclear("myset")
|
||||
|
||||
--zrem
|
||||
lds:zadd("myset", 1, "one", 2, "two", 3, "three")
|
||||
res, err = lds:zrem("myset", "two", "three")
|
||||
if not res then
|
||||
ngx.say("failed to ZREM ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("ZREM should be 2 <=>", res)
|
||||
lds:zclear("myset")
|
||||
|
||||
|
||||
--zremrangebyrank
|
||||
lds:zadd("myset", 1, "one", 2, "two", 3, "three")
|
||||
res, err= lds:zremrangebyrank("myset", 0, 2)
|
||||
if not res then
|
||||
ngx.say("failed to ZREMRANGEBYRANK ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("ZREMRANGEBYRANK should be 3 <=>", res)
|
||||
lds:zclear("myset")
|
||||
|
||||
|
||||
--zremrangebyscore
|
||||
lds:zadd("myset", 1, "one", 2, "two", 3, "three")
|
||||
res, err = lds:zremrangebyscore("myset", 0, 2)
|
||||
if not res then
|
||||
ngx.say("failed to ZREMRANGEBYSCORE ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("zremrangebyscore should be 2 <=>", res)
|
||||
lds:zclear("myset")
|
||||
|
||||
|
||||
-- zrevrange
|
||||
lds:zadd("myset", 1, "one", 2, "two", 3, "three")
|
||||
res, err = lds:zrevrange("myset", 0, -1)
|
||||
if not res then
|
||||
ngx.say("failed to ZREVRANGE ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("ZREVRANGE should be threetwoone <=>", res)
|
||||
lds:zclear("myset")
|
||||
|
||||
|
||||
|
||||
|
||||
-- zrevrangebyscore
|
||||
lds:zadd("myset", 1, "one", 2, "two", 3, "three")
|
||||
res, err = lds:zrevrangebyscore("myset", "+inf", "-inf")
|
||||
if not res then
|
||||
ngx.say("failed to ZREVRANGEBYSCORE ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("ZREVRANGEBYSCORE should be threetwoone <=>", res)
|
||||
lds:zclear("myset")
|
||||
|
||||
|
||||
|
||||
-- zscore
|
||||
lds:zadd("myset", 1, "one", 2, "two", 3, "three")
|
||||
res, err = lds:zscore("myset", "two")
|
||||
if not res then
|
||||
ngx.say("failed to ZSCORE ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("ZSCORE should be 2 <=>", res)
|
||||
lds.zclear("myset")
|
||||
|
||||
|
||||
-- zclear
|
||||
lds:zadd("myset", 1, "one", 2, "two", 3, "three")
|
||||
res, err = lds:zclear("myset")
|
||||
if not res then
|
||||
ngx.say("failed to ZCLEAR ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("ZCLEAR should be 3 <=>", res)
|
||||
|
||||
|
||||
-- zmclear
|
||||
lds:zadd("myset1", 1, "one", 2, "two", 3, "three")
|
||||
lds:zadd("myset2", 1, "one", 2, "two", 3, "three")
|
||||
res, err = lds:zmclear("myset1", "myset2")
|
||||
if not res then
|
||||
ngx.say("failed to ZMCLEAR ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("ZMCLEAR should be 2 <=>", res)
|
||||
|
||||
--zexpire
|
||||
|
||||
--zexpireat
|
||||
|
||||
--zpersist
|
||||
|
||||
--zttl
|
||||
|
||||
|
||||
-- zexpire
|
||||
|
||||
lds:zadd("myset", 1, "one")
|
||||
res, err = lds:zexpire("myset", 60)
|
||||
if not res then
|
||||
ngx.say("failed to zexpire ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("ZEXPIRE should be 1 <=> ", res)
|
||||
lds:zclear("myset")
|
||||
|
||||
|
||||
-- zexpireat
|
||||
lds:zadd("myset", 1, "one")
|
||||
res, err = lds:zexpire("myset", 14366666666)
|
||||
if not res then
|
||||
ngx.say("failed to zexpireat", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("ZEXPIREAT 1 <=>", res)
|
||||
lds:zclear("myset")
|
||||
|
||||
-- zttl
|
||||
|
||||
lds:zadd("myset", 1, "one")
|
||||
lds:zexpire("myset", 100)
|
||||
res, err = lds:zttl("myset")
|
||||
if not res then
|
||||
ngx.say("failed to zttl ", err)
|
||||
return
|
||||
end
|
||||
|
||||
if not (0 < res and res <= 100) then
|
||||
ngx.say("failed to zttl")
|
||||
return
|
||||
end
|
||||
ngx.say("ZTTL ", res)
|
||||
lds:zclear("myset")
|
||||
|
||||
-- zpersist
|
||||
|
||||
lds:zadd("myset", 1, "one")
|
||||
lds:zexpire("myset", 100)
|
||||
res, err = lds:zpersist("myset")
|
||||
|
||||
if not res then
|
||||
ngx.say("failed to zpersist", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("ZPERSIST should be 1 <=>", res)
|
||||
lds:zclear("myset")
|
||||
|
||||
|
||||
ngx.say("\n===================== SERVER INFO ==============\n")
|
||||
|
||||
-- [[ SERVER INFO ]]
|
||||
|
||||
-- ping
|
||||
res, err = lds:ping()
|
||||
if not res then
|
||||
ngx.say("failed to PING ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("PING should be PONG <=>", res)
|
||||
|
||||
-- echo
|
||||
res, err = lds:echo("hello, lua")
|
||||
if not res then
|
||||
ngx.say("failed to ECHO ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("ECHO should be hello, lua <=>", res)
|
||||
|
||||
|
||||
-- select
|
||||
|
||||
res, err = lds:select(5)
|
||||
if not res then
|
||||
ngx.say("failed to SELECT ", err)
|
||||
return
|
||||
end
|
||||
|
||||
ngx.say("SELECT should be OK <=>", res)
|
||||
|
||||
|
Loading…
Reference in New Issue