From b6f94e5adc0b4d216c08b1f1c915639a886b3783 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=91=E9=A3=8E?= Date: Fri, 21 Jun 2013 17:07:26 +0800 Subject: [PATCH] redis: sismember --- lualib/redis.lua | 17 +++++++---------- service/testredis.lua | 3 +++ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/lualib/redis.lua b/lualib/redis.lua index e436657d..6dcfa544 100644 --- a/lualib/redis.lua +++ b/lualib/redis.lua @@ -131,14 +131,16 @@ function command:exists(key) local ok, exists = read_response(fd) socket.unlock(fd) assert(ok, exists) - exists = exists ~= 0 - return exists + return exists ~= 0 end function command:sismember(key, value) assert(not batch, "sismember can't used in batch mode") - local result, ismember = skynet.call( self.__handle, "lua" , "SISMEMBER", key, value) - assert(result, ismember) + socket.lock(fd) + socket.write(fd, compose_message { "SISMEMBER", key, value }) + local ok, ismember = read_response(fd) + socket.unlock(fd) + assert(ok, ismember) return ismember ~= 0 end @@ -159,17 +161,12 @@ function command:batch(mode) return allret else local allok = true - local allret = true for i = 1, self.__batch do - local ok, ret = read_response(fd) + local ok = read_response(fd) allok = allok and ok - if ret~="OK" then - allret = false - end end socket.unlock(self.__handle) self.__mode = false - assert(allret, "reading in batch write") return allok end else diff --git a/service/testredis.lua b/service/testredis.lua index cbddf815..73b5c90e 100644 --- a/service/testredis.lua +++ b/service/testredis.lua @@ -7,6 +7,7 @@ skynet.start(function() db:batch "write" -- ignore results db:set("A", "hello") db:set("B", "world") + db:sadd("C", "one") print(db:batch "end") db:batch "read" @@ -20,6 +21,8 @@ skynet.start(function() print(db:get "A") print(db:set("A","hello world")) print(db:get("A")) + print(db:sismember("C","one")) + print(db:sismember("C","two")) db:disconnect() skynet.exit() end)