Merge pull request #488 from pietern/2.6-safekeys

Use safe dictionary iterator from KEYS (fixes #487)
This commit is contained in:
Salvatore Sanfilippo 2012-05-01 01:50:25 -07:00
commit 83b1092cf2
2 changed files with 12 additions and 1 deletions

View File

@ -255,7 +255,7 @@ void keysCommand(redisClient *c) {
unsigned long numkeys = 0;
void *replylen = addDeferredMultiBulkLength(c);
di = dictGetIterator(c->db->dict);
di = dictGetSafeIterator(c->db->dict);
allkeys = (pattern[0] == '*' && pattern[1] == '\0');
while((de = dictNext(di)) != NULL) {
sds key = dictGetKey(de);

View File

@ -141,4 +141,15 @@ start_server {tags {"expire"}} {
set size2 [r dbsize]
list $size1 $size2
} {3 0}
test {5 keys in, 5 keys out} {
r flushdb
r set a c
r expire a 5
r set t c
r set e c
r set s c
r set foo b
lsort [r keys *]
} {a e foo s t}
}