Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ruanhaishen
redis
Commits
660645c7
"vscode:/vscode.git/clone" did not exist on "ca577d162ab6bf4c241c53f89ff5cda6131d345d"
Commit
660645c7
authored
Dec 23, 2019
by
Oran Agra
Browse files
modules don't signalModifiedKey in setKey() since that's done (optionally) in RM_CloseKey
parent
324e22ac
Changes
4
Hide whitespace changes
Inline
Side-by-side
src/db.c
View file @
660645c7
...
@@ -220,7 +220,7 @@ void dbOverwrite(redisDb *db, robj *key, robj *val) {
...
@@ -220,7 +220,7 @@ void dbOverwrite(redisDb *db, robj *key, robj *val) {
* unless 'keepttl' is true.
* unless 'keepttl' is true.
*
*
* All the new keys in the database should be created via this interface. */
* All the new keys in the database should be created via this interface. */
void
genericSetKey
(
redisDb
*
db
,
robj
*
key
,
robj
*
val
,
int
keepttl
)
{
void
genericSetKey
(
redisDb
*
db
,
robj
*
key
,
robj
*
val
,
int
keepttl
,
int
signal
)
{
if
(
lookupKeyWrite
(
db
,
key
)
==
NULL
)
{
if
(
lookupKeyWrite
(
db
,
key
)
==
NULL
)
{
dbAdd
(
db
,
key
,
val
);
dbAdd
(
db
,
key
,
val
);
}
else
{
}
else
{
...
@@ -228,12 +228,12 @@ void genericSetKey(redisDb *db, robj *key, robj *val, int keepttl) {
...
@@ -228,12 +228,12 @@ void genericSetKey(redisDb *db, robj *key, robj *val, int keepttl) {
}
}
incrRefCount
(
val
);
incrRefCount
(
val
);
if
(
!
keepttl
)
removeExpire
(
db
,
key
);
if
(
!
keepttl
)
removeExpire
(
db
,
key
);
signalModifiedKey
(
db
,
key
);
if
(
signal
)
signalModifiedKey
(
db
,
key
);
}
}
/* Common case for genericSetKey() where the TTL is not retained. */
/* Common case for genericSetKey() where the TTL is not retained. */
void
setKey
(
redisDb
*
db
,
robj
*
key
,
robj
*
val
)
{
void
setKey
(
redisDb
*
db
,
robj
*
key
,
robj
*
val
)
{
genericSetKey
(
db
,
key
,
val
,
0
);
genericSetKey
(
db
,
key
,
val
,
0
,
1
);
}
}
/* Return true if the specified key exists in the specified database.
/* Return true if the specified key exists in the specified database.
...
...
src/module.c
View file @
660645c7
...
@@ -2128,7 +2128,7 @@ RedisModuleString *RM_RandomKey(RedisModuleCtx *ctx) {
...
@@ -2128,7 +2128,7 @@ RedisModuleString *RM_RandomKey(RedisModuleCtx *ctx) {
int RM_StringSet(RedisModuleKey *key, RedisModuleString *str) {
int RM_StringSet(RedisModuleKey *key, RedisModuleString *str) {
if (!(key->mode & REDISMODULE_WRITE) || key->iter) return REDISMODULE_ERR;
if (!(key->mode & REDISMODULE_WRITE) || key->iter) return REDISMODULE_ERR;
RM_DeleteKey(key);
RM_DeleteKey(key);
s
etKey
(
key
->
db
,
key
->
key
,
str
);
genericS
etKey(key->db,key->key,str
,0,0
);
key->value = str;
key->value = str;
return REDISMODULE_OK;
return REDISMODULE_OK;
}
}
...
@@ -2208,7 +2208,7 @@ int RM_StringTruncate(RedisModuleKey *key, size_t newlen) {
...
@@ -2208,7 +2208,7 @@ int RM_StringTruncate(RedisModuleKey *key, size_t newlen) {
if (key->value == NULL) {
if (key->value == NULL) {
/* Empty key: create it with the new size. */
/* Empty key: create it with the new size. */
robj *o = createObject(OBJ_STRING,sdsnewlen(NULL, newlen));
robj *o = createObject(OBJ_STRING,sdsnewlen(NULL, newlen));
s
etKey
(
key
->
db
,
key
->
key
,
o
);
genericS
etKey(key->db,key->key,o
,0,0
);
key->value = o;
key->value = o;
decrRefCount(o);
decrRefCount(o);
} else {
} else {
...
@@ -3597,7 +3597,7 @@ int RM_ModuleTypeSetValue(RedisModuleKey *key, moduleType *mt, void *value) {
...
@@ -3597,7 +3597,7 @@ int RM_ModuleTypeSetValue(RedisModuleKey *key, moduleType *mt, void *value) {
if (!(key->mode & REDISMODULE_WRITE) || key->iter) return REDISMODULE_ERR;
if (!(key->mode & REDISMODULE_WRITE) || key->iter) return REDISMODULE_ERR;
RM_DeleteKey(key);
RM_DeleteKey(key);
robj *o = createModuleObject(mt,value);
robj *o = createModuleObject(mt,value);
s
etKey
(
key
->
db
,
key
->
key
,
o
);
genericS
etKey(key->db,key->key,o
,0,0
);
decrRefCount(o);
decrRefCount(o);
key->value = o;
key->value = o;
return REDISMODULE_OK;
return REDISMODULE_OK;
...
...
src/server.h
View file @
660645c7
...
@@ -2032,7 +2032,7 @@ int objectSetLRUOrLFU(robj *val, long long lfu_freq, long long lru_idle,
...
@@ -2032,7 +2032,7 @@ int objectSetLRUOrLFU(robj *val, long long lfu_freq, long long lru_idle,
#define LOOKUP_NOTOUCH (1<<0)
#define LOOKUP_NOTOUCH (1<<0)
void
dbAdd
(
redisDb
*
db
,
robj
*
key
,
robj
*
val
);
void
dbAdd
(
redisDb
*
db
,
robj
*
key
,
robj
*
val
);
void
dbOverwrite
(
redisDb
*
db
,
robj
*
key
,
robj
*
val
);
void
dbOverwrite
(
redisDb
*
db
,
robj
*
key
,
robj
*
val
);
void
genericSetKey
(
redisDb
*
db
,
robj
*
key
,
robj
*
val
,
int
keepttl
);
void
genericSetKey
(
redisDb
*
db
,
robj
*
key
,
robj
*
val
,
int
keepttl
,
int
signal
);
void
setKey
(
redisDb
*
db
,
robj
*
key
,
robj
*
val
);
void
setKey
(
redisDb
*
db
,
robj
*
key
,
robj
*
val
);
int
dbExists
(
redisDb
*
db
,
robj
*
key
);
int
dbExists
(
redisDb
*
db
,
robj
*
key
);
robj
*
dbRandomKey
(
redisDb
*
db
);
robj
*
dbRandomKey
(
redisDb
*
db
);
...
...
src/t_string.c
View file @
660645c7
...
@@ -84,7 +84,7 @@ void setGenericCommand(client *c, int flags, robj *key, robj *val, robj *expire,
...
@@ -84,7 +84,7 @@ void setGenericCommand(client *c, int flags, robj *key, robj *val, robj *expire,
addReply
(
c
,
abort_reply
?
abort_reply
:
shared
.
null
[
c
->
resp
]);
addReply
(
c
,
abort_reply
?
abort_reply
:
shared
.
null
[
c
->
resp
]);
return
;
return
;
}
}
genericSetKey
(
c
->
db
,
key
,
val
,
flags
&
OBJ_SET_KEEPTTL
);
genericSetKey
(
c
->
db
,
key
,
val
,
flags
&
OBJ_SET_KEEPTTL
,
1
);
server
.
dirty
++
;
server
.
dirty
++
;
if
(
expire
)
setExpire
(
c
,
c
->
db
,
key
,
mstime
()
+
milliseconds
);
if
(
expire
)
setExpire
(
c
,
c
->
db
,
key
,
mstime
()
+
milliseconds
);
notifyKeyspaceEvent
(
NOTIFY_STRING
,
"set"
,
key
,
c
->
db
->
id
);
notifyKeyspaceEvent
(
NOTIFY_STRING
,
"set"
,
key
,
c
->
db
->
id
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment