mirror of
https://github.com/fluencelabs/redis
synced 2025-03-19 09:00:51 +00:00
Merge pull request #4679 from youjiali1995/fix-lru
Some commands will udpate lfu-counter many times in one call.
This commit is contained in:
commit
bad679137e
7
src/db.c
7
src/db.c
@ -187,9 +187,6 @@ void dbOverwrite(redisDb *db, robj *key, robj *val) {
|
|||||||
int saved_lru = old->lru;
|
int saved_lru = old->lru;
|
||||||
dictReplace(db->dict, key->ptr, val);
|
dictReplace(db->dict, key->ptr, val);
|
||||||
val->lru = saved_lru;
|
val->lru = saved_lru;
|
||||||
/* LFU should be not only copied but also updated
|
|
||||||
* when a key is overwritten. */
|
|
||||||
updateLFU(val);
|
|
||||||
} else {
|
} else {
|
||||||
dictReplace(db->dict, key->ptr, val);
|
dictReplace(db->dict, key->ptr, val);
|
||||||
}
|
}
|
||||||
@ -1359,7 +1356,7 @@ int *georadiusGetKeys(struct redisCommand *cmd, robj **argv, int argc, int *numk
|
|||||||
for (i = 5; i < argc; i++) {
|
for (i = 5; i < argc; i++) {
|
||||||
char *arg = argv[i]->ptr;
|
char *arg = argv[i]->ptr;
|
||||||
/* For the case when user specifies both "store" and "storedist" options, the
|
/* For the case when user specifies both "store" and "storedist" options, the
|
||||||
* second key specified would override the first key. This behavior is kept
|
* second key specified would override the first key. This behavior is kept
|
||||||
* the same as in georadiusCommand method.
|
* the same as in georadiusCommand method.
|
||||||
*/
|
*/
|
||||||
if ((!strcasecmp(arg, "store") || !strcasecmp(arg, "storedist")) && ((i+1) < argc)) {
|
if ((!strcasecmp(arg, "store") || !strcasecmp(arg, "storedist")) && ((i+1) < argc)) {
|
||||||
@ -1380,7 +1377,7 @@ int *georadiusGetKeys(struct redisCommand *cmd, robj **argv, int argc, int *numk
|
|||||||
if(num > 1) {
|
if(num > 1) {
|
||||||
keys[1] = stored_key;
|
keys[1] = stored_key;
|
||||||
}
|
}
|
||||||
*numkeys = num;
|
*numkeys = num;
|
||||||
return keys;
|
return keys;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user