提交 ce7bef07 编写于 作者: A antirez

RANDOMKEY issue 26 fixed, generic test + regression added

上级 05557f6d
......@@ -2237,9 +2237,10 @@ static void randomkeyCommand(redisClient *c) {
while(1) {
de = dictGetRandomKey(c->db->dict);
if (expireIfNeeded(c->db,dictGetEntryKey(de)) == 0) break;
if (!de || expireIfNeeded(c->db,dictGetEntryKey(de)) == 0) break;
}
if (de == NULL) {
addReply(c,shared.plus);
addReply(c,shared.crlf);
} else {
addReply(c,shared.plus);
......
......@@ -588,6 +588,29 @@ proc main {server port} {
$r mget foo baazz bar myset
} {BAR {} FOO {}}
test {RANDOMKEY} {
$r flushall
$r set foo x
$r set bar y
set foo_seen 0
set bar_seen 0
for {set i 0} {$i < 100} {incr i} {
set rkey [$r randomkey]
if {$rkey eq {foo}} {
set foo_seen 1
}
if {$rkey eq {bar}} {
set bar_seen 1
}
}
list $foo_seen $bar_seen
} {1 1}
test {RANDOMKEY against empty DB} {
$r flushall
$r randomkey
} {}
# Leave the user with a clean DB before to exit
test {FLUSHALL} {
$r flushall
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册