X-Git-Url: https://git.saurik.com/redis.git/blobdiff_plain/58732c23d53d6fc652668a516556ea182b0ed0f8..5574b53eae1743cca9eed5a9dd25bf418c974701:/src/redis.c diff --git a/src/redis.c b/src/redis.c index 53ac5350..527b0538 100644 --- a/src/redis.c +++ b/src/redis.c @@ -91,6 +91,7 @@ struct redisCommand redisCommandTable[] = { {"set",setCommand,3,"wm",0,noPreloadGetKeys,1,1,1,0,0}, {"setnx",setnxCommand,3,"wm",0,noPreloadGetKeys,1,1,1,0,0}, {"setex",setexCommand,4,"wm",0,noPreloadGetKeys,2,2,1,0,0}, + {"psetex",psetexCommand,4,"wm",0,noPreloadGetKeys,2,2,1,0,0}, {"append",appendCommand,3,"wm",0,NULL,1,1,1,0,0}, {"strlen",strlenCommand,2,"r",0,NULL,1,1,1,0,0}, {"del",delCommand,-2,"w",0,noPreloadGetKeys,1,-1,1,0,0}, @@ -164,6 +165,7 @@ struct redisCommand redisCommandTable[] = { {"hexists",hexistsCommand,3,"r",0,NULL,1,1,1,0,0}, {"incrby",incrbyCommand,3,"wm",0,NULL,1,1,1,0,0}, {"decrby",decrbyCommand,3,"wm",0,NULL,1,1,1,0,0}, + {"incrbyfloat",incrbyfloatCommand,3,"wm",0,NULL,1,1,1,0,0}, {"getset",getsetCommand,3,"wm",0,NULL,1,1,1,0,0}, {"mset",msetCommand,-3,"wm",0,NULL,1,-1,2,0,0}, {"msetnx",msetnxCommand,-3,"wm",0,NULL,1,-1,2,0,0}, @@ -174,6 +176,8 @@ struct redisCommand redisCommandTable[] = { {"renamenx",renamenxCommand,3,"w",0,renameGetKeys,1,2,1,0,0}, {"expire",expireCommand,3,"w",0,NULL,1,1,1,0,0}, {"expireat",expireatCommand,3,"w",0,NULL,1,1,1,0,0}, + {"pexpire",pexpireCommand,3,"w",0,NULL,1,1,1,0,0}, + {"pexpireat",pexpireatCommand,3,"w",0,NULL,1,1,1,0,0}, {"keys",keysCommand,2,"r",0,NULL,0,0,0,0,0}, {"dbsize",dbsizeCommand,1,"r",0,NULL,0,0,0,0,0}, {"auth",authCommand,2,"r",0,NULL,0,0,0,0,0}, @@ -195,6 +199,7 @@ struct redisCommand redisCommandTable[] = { {"info",infoCommand,-1,"r",0,NULL,0,0,0,0,0}, {"monitor",monitorCommand,1,"ars",0,NULL,0,0,0,0,0}, {"ttl",ttlCommand,2,"r",0,NULL,1,1,1,0,0}, + {"pttl",pttlCommand,2,"r",0,NULL,1,1,1,0,0}, {"persist",persistCommand,2,"w",0,NULL,1,1,1,0,0}, {"slaveof",slaveofCommand,3,"aws",0,NULL,0,0,0,0,0}, {"debug",debugCommand,-2,"aw",0,NULL,0,0,0,0,0}, @@ -288,6 +293,11 @@ long long ustime(void) { return ust; } +/* Return the UNIX time in milliseconds */ +long long mstime(void) { + return ustime()/1000; +} + /*====================== Hash table type implementation ==================== */ /* This is an hash table type that uses the SDS dynamic strings libary as @@ -563,9 +573,9 @@ void activeExpireCycle(void) { time_t t; if ((de = dictGetRandomKey(db->expires)) == NULL) break; - t = (time_t) dictGetEntryVal(de); + t = (time_t) dictGetVal(de); if (now > t) { - sds key = dictGetEntryKey(de); + sds key = dictGetKey(de); robj *keyobj = createStringObject(key,sdslen(key)); propagateExpire(db,keyobj); @@ -869,6 +879,8 @@ void initServerConfig() { server.zset_max_ziplist_entries = REDIS_ZSET_MAX_ZIPLIST_ENTRIES; server.zset_max_ziplist_value = REDIS_ZSET_MAX_ZIPLIST_VALUE; server.shutdown_asap = 0; + server.repl_ping_slave_period = REDIS_REPL_PING_SLAVE_PERIOD; + server.repl_timeout = REDIS_REPL_TIMEOUT; server.cluster_enabled = 0; server.cluster.configfile = zstrdup("nodes.conf"); server.lua_time_limit = REDIS_LUA_TIME_LIMIT; @@ -1677,7 +1689,7 @@ void freeMemoryIfNeeded(void) { server.maxmemory_policy == REDIS_MAXMEMORY_VOLATILE_RANDOM) { de = dictGetRandomKey(dict); - bestkey = dictGetEntryKey(de); + bestkey = dictGetKey(de); } /* volatile-lru and allkeys-lru policy */ @@ -1690,12 +1702,12 @@ void freeMemoryIfNeeded(void) { robj *o; de = dictGetRandomKey(dict); - thiskey = dictGetEntryKey(de); + thiskey = dictGetKey(de); /* When policy is volatile-lru we need an additonal lookup * to locate the real key, as dict is set to db->expires. */ if (server.maxmemory_policy == REDIS_MAXMEMORY_VOLATILE_LRU) de = dictFind(db->dict, thiskey); - o = dictGetEntryVal(de); + o = dictGetVal(de); thisval = estimateObjectIdleTime(o); /* Higher idle time is better candidate for deletion */ @@ -1713,8 +1725,8 @@ void freeMemoryIfNeeded(void) { long thisval; de = dictGetRandomKey(dict); - thiskey = dictGetEntryKey(de); - thisval = (long) dictGetEntryVal(de); + thiskey = dictGetKey(de); + thisval = (long) dictGetVal(de); /* Expire sooner (minor expire unix timestamp) is better * candidate for deletion */