mirror of
https://codeberg.org/redict/redict.git
synced 2025-01-22 16:18:28 -05:00
PERSIST command implemented
This commit is contained in:
parent
6146329f1f
commit
a539d29ac5
20
src/db.c
20
src/db.c
@ -394,11 +394,7 @@ int removeExpire(redisDb *db, robj *key) {
|
|||||||
/* An expire may only be removed if there is a corresponding entry in the
|
/* An expire may only be removed if there is a corresponding entry in the
|
||||||
* main dict. Otherwise, the key will never be freed. */
|
* main dict. Otherwise, the key will never be freed. */
|
||||||
redisAssert(dictFind(db->dict,key->ptr) != NULL);
|
redisAssert(dictFind(db->dict,key->ptr) != NULL);
|
||||||
if (dictDelete(db->expires,key->ptr) == DICT_OK) {
|
return dictDelete(db->expires,key->ptr) == DICT_OK;
|
||||||
return 1;
|
|
||||||
} else {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void setExpire(redisDb *db, robj *key, time_t when) {
|
void setExpire(redisDb *db, robj *key, time_t when) {
|
||||||
@ -528,3 +524,17 @@ void ttlCommand(redisClient *c) {
|
|||||||
}
|
}
|
||||||
addReplySds(c,sdscatprintf(sdsempty(),":%d\r\n",ttl));
|
addReplySds(c,sdscatprintf(sdsempty(),":%d\r\n",ttl));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void persistCommand(redisClient *c) {
|
||||||
|
dictEntry *de;
|
||||||
|
|
||||||
|
de = dictFind(c->db->dict,c->argv[1]->ptr);
|
||||||
|
if (de == NULL) {
|
||||||
|
addReply(c,shared.czero);
|
||||||
|
} else {
|
||||||
|
if (removeExpire(c->db,c->argv[1]))
|
||||||
|
addReply(c,shared.cone);
|
||||||
|
else
|
||||||
|
addReply(c,shared.czero);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -170,6 +170,7 @@ struct redisCommand readonlyCommandTable[] = {
|
|||||||
{"info",infoCommand,1,REDIS_CMD_INLINE,NULL,0,0,0},
|
{"info",infoCommand,1,REDIS_CMD_INLINE,NULL,0,0,0},
|
||||||
{"monitor",monitorCommand,1,REDIS_CMD_INLINE,NULL,0,0,0},
|
{"monitor",monitorCommand,1,REDIS_CMD_INLINE,NULL,0,0,0},
|
||||||
{"ttl",ttlCommand,2,REDIS_CMD_INLINE,NULL,1,1,1},
|
{"ttl",ttlCommand,2,REDIS_CMD_INLINE,NULL,1,1,1},
|
||||||
|
{"persist",persistCommand,2,REDIS_CMD_INLINE,NULL,1,1,1},
|
||||||
{"slaveof",slaveofCommand,3,REDIS_CMD_INLINE,NULL,0,0,0},
|
{"slaveof",slaveofCommand,3,REDIS_CMD_INLINE,NULL,0,0,0},
|
||||||
{"debug",debugCommand,-2,REDIS_CMD_INLINE,NULL,0,0,0},
|
{"debug",debugCommand,-2,REDIS_CMD_INLINE,NULL,0,0,0},
|
||||||
{"config",configCommand,-2,REDIS_CMD_BULK,NULL,0,0,0},
|
{"config",configCommand,-2,REDIS_CMD_BULK,NULL,0,0,0},
|
||||||
|
@ -838,6 +838,7 @@ void expireCommand(redisClient *c);
|
|||||||
void expireatCommand(redisClient *c);
|
void expireatCommand(redisClient *c);
|
||||||
void getsetCommand(redisClient *c);
|
void getsetCommand(redisClient *c);
|
||||||
void ttlCommand(redisClient *c);
|
void ttlCommand(redisClient *c);
|
||||||
|
void persistCommand(redisClient *c);
|
||||||
void slaveofCommand(redisClient *c);
|
void slaveofCommand(redisClient *c);
|
||||||
void debugCommand(redisClient *c);
|
void debugCommand(redisClient *c);
|
||||||
void msetCommand(redisClient *c);
|
void msetCommand(redisClient *c);
|
||||||
|
Loading…
Reference in New Issue
Block a user