]> git.saurik.com Git - redis.git/commitdiff
merge conflict resolved
authorantirez <antirez@gmail.com>
Thu, 28 Oct 2010 20:59:47 +0000 (22:59 +0200)
committerantirez <antirez@gmail.com>
Thu, 28 Oct 2010 20:59:47 +0000 (22:59 +0200)
1  2 
src/Makefile
src/aof.c
src/config.c
src/redis.c
src/redis.h
src/t_zset.c

diff --cc src/Makefile
Simple merge
diff --cc src/aof.c
Simple merge
diff --cc src/config.c
index 9655917cd49058d9de960706a2fdf0fefb0f2146,c979162bc535ae7c274756023c64645b04d7efaa..db58a2360b4817f0576ae8e5e48b9230e9514698
@@@ -368,12 -329,11 +368,12 @@@ badfmt: /* Bad format errors *
  }
  
  void configGetCommand(redisClient *c) {
-     robj *o = getDecodedObject(c->argv[2]);
+     robj *o = c->argv[2];
      void *replylen = addDeferredMultiBulkLength(c);
      char *pattern = o->ptr;
 +    char buf[128];
      int matches = 0;
+     redisAssert(o->encoding == REDIS_ENCODING_RAW);
  
      if (stringmatch(pattern,"dbfilename",0)) {
          addReplyBulkCString(c,"dbfilename");
diff --cc src/redis.c
index 08bba542a86474affa6237a7b1aa6a89397b58c9,1f8d71a7d8f76810ac60196939edbd57312644aa..4aa19560040096ac48b733fbedef57016ab112ba
@@@ -69,120 -69,119 +69,120 @@@ double R_Zero, R_PosInf, R_NegInf, R_Na
  struct redisServer server; /* server global state */
  struct redisCommand *commandTable;
  struct redisCommand readonlyCommandTable[] = {
-     {"get",getCommand,2,REDIS_CMD_INLINE,NULL,1,1,1},
-     {"set",setCommand,3,REDIS_CMD_BULK|REDIS_CMD_DENYOOM,NULL,0,0,0},
-     {"setnx",setnxCommand,3,REDIS_CMD_BULK|REDIS_CMD_DENYOOM,NULL,0,0,0},
-     {"setex",setexCommand,4,REDIS_CMD_BULK|REDIS_CMD_DENYOOM,NULL,0,0,0},
-     {"append",appendCommand,3,REDIS_CMD_BULK|REDIS_CMD_DENYOOM,NULL,1,1,1},
-     {"substr",substrCommand,4,REDIS_CMD_INLINE,NULL,1,1,1},
-     {"strlen",strlenCommand,2,REDIS_CMD_INLINE,NULL,1,1,1},
-     {"del",delCommand,-2,REDIS_CMD_INLINE,NULL,0,0,0},
-     {"exists",existsCommand,2,REDIS_CMD_INLINE,NULL,1,1,1},
-     {"incr",incrCommand,2,REDIS_CMD_INLINE|REDIS_CMD_DENYOOM,NULL,1,1,1},
-     {"decr",decrCommand,2,REDIS_CMD_INLINE|REDIS_CMD_DENYOOM,NULL,1,1,1},
-     {"mget",mgetCommand,-2,REDIS_CMD_INLINE,NULL,1,-1,1},
-     {"rpush",rpushCommand,3,REDIS_CMD_BULK|REDIS_CMD_DENYOOM,NULL,1,1,1},
-     {"lpush",lpushCommand,3,REDIS_CMD_BULK|REDIS_CMD_DENYOOM,NULL,1,1,1},
-     {"rpushx",rpushxCommand,3,REDIS_CMD_BULK|REDIS_CMD_DENYOOM,NULL,1,1,1},
-     {"lpushx",lpushxCommand,3,REDIS_CMD_BULK|REDIS_CMD_DENYOOM,NULL,1,1,1},
-     {"linsert",linsertCommand,5,REDIS_CMD_BULK|REDIS_CMD_DENYOOM,NULL,1,1,1},
-     {"rpop",rpopCommand,2,REDIS_CMD_INLINE,NULL,1,1,1},
-     {"lpop",lpopCommand,2,REDIS_CMD_INLINE,NULL,1,1,1},
-     {"brpop",brpopCommand,-3,REDIS_CMD_INLINE,NULL,1,1,1},
-     {"blpop",blpopCommand,-3,REDIS_CMD_INLINE,NULL,1,1,1},
-     {"llen",llenCommand,2,REDIS_CMD_INLINE,NULL,1,1,1},
-     {"lindex",lindexCommand,3,REDIS_CMD_INLINE,NULL,1,1,1},
-     {"lset",lsetCommand,4,REDIS_CMD_BULK|REDIS_CMD_DENYOOM,NULL,1,1,1},
-     {"lrange",lrangeCommand,4,REDIS_CMD_INLINE,NULL,1,1,1},
-     {"ltrim",ltrimCommand,4,REDIS_CMD_INLINE,NULL,1,1,1},
-     {"lrem",lremCommand,4,REDIS_CMD_BULK,NULL,1,1,1},
-     {"rpoplpush",rpoplpushcommand,3,REDIS_CMD_INLINE|REDIS_CMD_DENYOOM,NULL,1,2,1},
-     {"sadd",saddCommand,3,REDIS_CMD_BULK|REDIS_CMD_DENYOOM,NULL,1,1,1},
-     {"srem",sremCommand,3,REDIS_CMD_BULK,NULL,1,1,1},
-     {"smove",smoveCommand,4,REDIS_CMD_BULK,NULL,1,2,1},
-     {"sismember",sismemberCommand,3,REDIS_CMD_BULK,NULL,1,1,1},
-     {"scard",scardCommand,2,REDIS_CMD_INLINE,NULL,1,1,1},
-     {"spop",spopCommand,2,REDIS_CMD_INLINE,NULL,1,1,1},
-     {"srandmember",srandmemberCommand,2,REDIS_CMD_INLINE,NULL,1,1,1},
-     {"sinter",sinterCommand,-2,REDIS_CMD_INLINE|REDIS_CMD_DENYOOM,NULL,1,-1,1},
-     {"sinterstore",sinterstoreCommand,-3,REDIS_CMD_INLINE|REDIS_CMD_DENYOOM,NULL,2,-1,1},
-     {"sunion",sunionCommand,-2,REDIS_CMD_INLINE|REDIS_CMD_DENYOOM,NULL,1,-1,1},
-     {"sunionstore",sunionstoreCommand,-3,REDIS_CMD_INLINE|REDIS_CMD_DENYOOM,NULL,2,-1,1},
-     {"sdiff",sdiffCommand,-2,REDIS_CMD_INLINE|REDIS_CMD_DENYOOM,NULL,1,-1,1},
-     {"sdiffstore",sdiffstoreCommand,-3,REDIS_CMD_INLINE|REDIS_CMD_DENYOOM,NULL,2,-1,1},
-     {"smembers",sinterCommand,2,REDIS_CMD_INLINE,NULL,1,1,1},
-     {"zadd",zaddCommand,4,REDIS_CMD_BULK|REDIS_CMD_DENYOOM,NULL,1,1,1},
-     {"zincrby",zincrbyCommand,4,REDIS_CMD_BULK|REDIS_CMD_DENYOOM,NULL,1,1,1},
-     {"zrem",zremCommand,3,REDIS_CMD_BULK,NULL,1,1,1},
-     {"zremrangebyscore",zremrangebyscoreCommand,4,REDIS_CMD_INLINE,NULL,1,1,1},
-     {"zremrangebyrank",zremrangebyrankCommand,4,REDIS_CMD_INLINE,NULL,1,1,1},
-     {"zunionstore",zunionstoreCommand,-4,REDIS_CMD_INLINE|REDIS_CMD_DENYOOM,zunionInterBlockClientOnSwappedKeys,0,0,0},
-     {"zinterstore",zinterstoreCommand,-4,REDIS_CMD_INLINE|REDIS_CMD_DENYOOM,zunionInterBlockClientOnSwappedKeys,0,0,0},
-     {"zrange",zrangeCommand,-4,REDIS_CMD_INLINE,NULL,1,1,1},
-     {"zrangebyscore",zrangebyscoreCommand,-4,REDIS_CMD_INLINE,NULL,1,1,1},
-     {"zrevrangebyscore",zrevrangebyscoreCommand,-4,REDIS_CMD_INLINE,NULL,1,1,1},
-     {"zcount",zcountCommand,4,REDIS_CMD_INLINE,NULL,1,1,1},
-     {"zrevrange",zrevrangeCommand,-4,REDIS_CMD_INLINE,NULL,1,1,1},
-     {"zcard",zcardCommand,2,REDIS_CMD_INLINE,NULL,1,1,1},
-     {"zscore",zscoreCommand,3,REDIS_CMD_BULK|REDIS_CMD_DENYOOM,NULL,1,1,1},
-     {"zrank",zrankCommand,3,REDIS_CMD_BULK,NULL,1,1,1},
-     {"zrevrank",zrevrankCommand,3,REDIS_CMD_BULK,NULL,1,1,1},
-     {"hset",hsetCommand,4,REDIS_CMD_BULK|REDIS_CMD_DENYOOM,NULL,1,1,1},
-     {"hsetnx",hsetnxCommand,4,REDIS_CMD_BULK|REDIS_CMD_DENYOOM,NULL,1,1,1},
-     {"hget",hgetCommand,3,REDIS_CMD_BULK,NULL,1,1,1},
-     {"hmset",hmsetCommand,-4,REDIS_CMD_BULK|REDIS_CMD_DENYOOM,NULL,1,1,1},
-     {"hmget",hmgetCommand,-3,REDIS_CMD_BULK,NULL,1,1,1},
-     {"hincrby",hincrbyCommand,4,REDIS_CMD_INLINE|REDIS_CMD_DENYOOM,NULL,1,1,1},
-     {"hdel",hdelCommand,3,REDIS_CMD_BULK,NULL,1,1,1},
-     {"hlen",hlenCommand,2,REDIS_CMD_INLINE,NULL,1,1,1},
-     {"hkeys",hkeysCommand,2,REDIS_CMD_INLINE,NULL,1,1,1},
-     {"hvals",hvalsCommand,2,REDIS_CMD_INLINE,NULL,1,1,1},
-     {"hgetall",hgetallCommand,2,REDIS_CMD_INLINE,NULL,1,1,1},
-     {"hexists",hexistsCommand,3,REDIS_CMD_BULK,NULL,1,1,1},
-     {"incrby",incrbyCommand,3,REDIS_CMD_INLINE|REDIS_CMD_DENYOOM,NULL,1,1,1},
-     {"decrby",decrbyCommand,3,REDIS_CMD_INLINE|REDIS_CMD_DENYOOM,NULL,1,1,1},
-     {"getset",getsetCommand,3,REDIS_CMD_BULK|REDIS_CMD_DENYOOM,NULL,1,1,1},
-     {"mset",msetCommand,-3,REDIS_CMD_BULK|REDIS_CMD_DENYOOM,NULL,1,-1,2},
-     {"msetnx",msetnxCommand,-3,REDIS_CMD_BULK|REDIS_CMD_DENYOOM,NULL,1,-1,2},
-     {"randomkey",randomkeyCommand,1,REDIS_CMD_INLINE,NULL,0,0,0},
-     {"select",selectCommand,2,REDIS_CMD_INLINE,NULL,0,0,0},
-     {"move",moveCommand,3,REDIS_CMD_INLINE,NULL,1,1,1},
-     {"rename",renameCommand,3,REDIS_CMD_INLINE,NULL,1,1,1},
-     {"renamenx",renamenxCommand,3,REDIS_CMD_INLINE,NULL,1,1,1},
-     {"expire",expireCommand,3,REDIS_CMD_INLINE,NULL,0,0,0},
-     {"expireat",expireatCommand,3,REDIS_CMD_INLINE,NULL,0,0,0},
-     {"keys",keysCommand,2,REDIS_CMD_INLINE,NULL,0,0,0},
-     {"dbsize",dbsizeCommand,1,REDIS_CMD_INLINE,NULL,0,0,0},
-     {"auth",authCommand,2,REDIS_CMD_INLINE,NULL,0,0,0},
-     {"ping",pingCommand,1,REDIS_CMD_INLINE,NULL,0,0,0},
-     {"echo",echoCommand,2,REDIS_CMD_BULK,NULL,0,0,0},
-     {"save",saveCommand,1,REDIS_CMD_INLINE,NULL,0,0,0},
-     {"bgsave",bgsaveCommand,1,REDIS_CMD_INLINE,NULL,0,0,0},
-     {"bgrewriteaof",bgrewriteaofCommand,1,REDIS_CMD_INLINE,NULL,0,0,0},
-     {"shutdown",shutdownCommand,1,REDIS_CMD_INLINE,NULL,0,0,0},
-     {"lastsave",lastsaveCommand,1,REDIS_CMD_INLINE,NULL,0,0,0},
-     {"type",typeCommand,2,REDIS_CMD_INLINE,NULL,1,1,1},
-     {"multi",multiCommand,1,REDIS_CMD_INLINE,NULL,0,0,0},
-     {"exec",execCommand,1,REDIS_CMD_INLINE|REDIS_CMD_DENYOOM,execBlockClientOnSwappedKeys,0,0,0},
-     {"discard",discardCommand,1,REDIS_CMD_INLINE,NULL,0,0,0},
-     {"sync",syncCommand,1,REDIS_CMD_INLINE,NULL,0,0,0},
-     {"flushdb",flushdbCommand,1,REDIS_CMD_INLINE,NULL,0,0,0},
-     {"flushall",flushallCommand,1,REDIS_CMD_INLINE,NULL,0,0,0},
-     {"sort",sortCommand,-2,REDIS_CMD_INLINE|REDIS_CMD_DENYOOM,NULL,1,1,1},
-     {"info",infoCommand,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},
-     {"persist",persistCommand,2,REDIS_CMD_INLINE,NULL,1,1,1},
-     {"slaveof",slaveofCommand,3,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},
-     {"subscribe",subscribeCommand,-2,REDIS_CMD_INLINE,NULL,0,0,0},
-     {"unsubscribe",unsubscribeCommand,-1,REDIS_CMD_INLINE,NULL,0,0,0},
-     {"psubscribe",psubscribeCommand,-2,REDIS_CMD_INLINE,NULL,0,0,0},
-     {"punsubscribe",punsubscribeCommand,-1,REDIS_CMD_INLINE,NULL,0,0,0},
-     {"publish",publishCommand,3,REDIS_CMD_BULK|REDIS_CMD_FORCE_REPLICATION,NULL,0,0,0},
-     {"watch",watchCommand,-2,REDIS_CMD_INLINE,NULL,0,0,0},
-     {"unwatch",unwatchCommand,1,REDIS_CMD_INLINE,NULL,0,0,0}
+     {"get",getCommand,2,0,NULL,1,1,1},
+     {"set",setCommand,3,REDIS_CMD_DENYOOM,NULL,0,0,0},
+     {"setnx",setnxCommand,3,REDIS_CMD_DENYOOM,NULL,0,0,0},
+     {"setex",setexCommand,4,REDIS_CMD_DENYOOM,NULL,0,0,0},
+     {"append",appendCommand,3,REDIS_CMD_DENYOOM,NULL,1,1,1},
+     {"substr",substrCommand,4,0,NULL,1,1,1},
+     {"strlen",strlenCommand,2,0,NULL,1,1,1},
+     {"del",delCommand,-2,0,NULL,0,0,0},
+     {"exists",existsCommand,2,0,NULL,1,1,1},
+     {"incr",incrCommand,2,REDIS_CMD_DENYOOM,NULL,1,1,1},
+     {"decr",decrCommand,2,REDIS_CMD_DENYOOM,NULL,1,1,1},
+     {"mget",mgetCommand,-2,0,NULL,1,-1,1},
+     {"rpush",rpushCommand,3,REDIS_CMD_DENYOOM,NULL,1,1,1},
+     {"lpush",lpushCommand,3,REDIS_CMD_DENYOOM,NULL,1,1,1},
+     {"rpushx",rpushxCommand,3,REDIS_CMD_DENYOOM,NULL,1,1,1},
+     {"lpushx",lpushxCommand,3,REDIS_CMD_DENYOOM,NULL,1,1,1},
+     {"linsert",linsertCommand,5,REDIS_CMD_DENYOOM,NULL,1,1,1},
+     {"rpop",rpopCommand,2,0,NULL,1,1,1},
+     {"lpop",lpopCommand,2,0,NULL,1,1,1},
+     {"brpop",brpopCommand,-3,0,NULL,1,1,1},
+     {"blpop",blpopCommand,-3,0,NULL,1,1,1},
+     {"llen",llenCommand,2,0,NULL,1,1,1},
+     {"lindex",lindexCommand,3,0,NULL,1,1,1},
+     {"lset",lsetCommand,4,REDIS_CMD_DENYOOM,NULL,1,1,1},
+     {"lrange",lrangeCommand,4,0,NULL,1,1,1},
+     {"ltrim",ltrimCommand,4,0,NULL,1,1,1},
+     {"lrem",lremCommand,4,0,NULL,1,1,1},
+     {"rpoplpush",rpoplpushcommand,3,REDIS_CMD_DENYOOM,NULL,1,2,1},
+     {"sadd",saddCommand,3,REDIS_CMD_DENYOOM,NULL,1,1,1},
+     {"srem",sremCommand,3,0,NULL,1,1,1},
+     {"smove",smoveCommand,4,0,NULL,1,2,1},
+     {"sismember",sismemberCommand,3,0,NULL,1,1,1},
+     {"scard",scardCommand,2,0,NULL,1,1,1},
+     {"spop",spopCommand,2,0,NULL,1,1,1},
+     {"srandmember",srandmemberCommand,2,0,NULL,1,1,1},
+     {"sinter",sinterCommand,-2,REDIS_CMD_DENYOOM,NULL,1,-1,1},
+     {"sinterstore",sinterstoreCommand,-3,REDIS_CMD_DENYOOM,NULL,2,-1,1},
+     {"sunion",sunionCommand,-2,REDIS_CMD_DENYOOM,NULL,1,-1,1},
+     {"sunionstore",sunionstoreCommand,-3,REDIS_CMD_DENYOOM,NULL,2,-1,1},
+     {"sdiff",sdiffCommand,-2,REDIS_CMD_DENYOOM,NULL,1,-1,1},
+     {"sdiffstore",sdiffstoreCommand,-3,REDIS_CMD_DENYOOM,NULL,2,-1,1},
+     {"smembers",sinterCommand,2,0,NULL,1,1,1},
+     {"zadd",zaddCommand,4,REDIS_CMD_DENYOOM,NULL,1,1,1},
+     {"zincrby",zincrbyCommand,4,REDIS_CMD_DENYOOM,NULL,1,1,1},
+     {"zrem",zremCommand,3,0,NULL,1,1,1},
+     {"zremrangebyscore",zremrangebyscoreCommand,4,0,NULL,1,1,1},
+     {"zremrangebyrank",zremrangebyrankCommand,4,0,NULL,1,1,1},
+     {"zunionstore",zunionstoreCommand,-4,REDIS_CMD_DENYOOM,zunionInterBlockClientOnSwappedKeys,0,0,0},
+     {"zinterstore",zinterstoreCommand,-4,REDIS_CMD_DENYOOM,zunionInterBlockClientOnSwappedKeys,0,0,0},
+     {"zrange",zrangeCommand,-4,0,NULL,1,1,1},
+     {"zrangebyscore",zrangebyscoreCommand,-4,0,NULL,1,1,1},
++    {"zrevrangebyscore",zrevrangebyscoreCommand,-4,0,NULL,1,1,1},
+     {"zcount",zcountCommand,4,0,NULL,1,1,1},
+     {"zrevrange",zrevrangeCommand,-4,0,NULL,1,1,1},
+     {"zcard",zcardCommand,2,0,NULL,1,1,1},
+     {"zscore",zscoreCommand,3,REDIS_CMD_DENYOOM,NULL,1,1,1},
+     {"zrank",zrankCommand,3,0,NULL,1,1,1},
+     {"zrevrank",zrevrankCommand,3,0,NULL,1,1,1},
+     {"hset",hsetCommand,4,REDIS_CMD_DENYOOM,NULL,1,1,1},
+     {"hsetnx",hsetnxCommand,4,REDIS_CMD_DENYOOM,NULL,1,1,1},
+     {"hget",hgetCommand,3,0,NULL,1,1,1},
+     {"hmset",hmsetCommand,-4,REDIS_CMD_DENYOOM,NULL,1,1,1},
+     {"hmget",hmgetCommand,-3,0,NULL,1,1,1},
+     {"hincrby",hincrbyCommand,4,REDIS_CMD_DENYOOM,NULL,1,1,1},
+     {"hdel",hdelCommand,3,0,NULL,1,1,1},
+     {"hlen",hlenCommand,2,0,NULL,1,1,1},
+     {"hkeys",hkeysCommand,2,0,NULL,1,1,1},
+     {"hvals",hvalsCommand,2,0,NULL,1,1,1},
+     {"hgetall",hgetallCommand,2,0,NULL,1,1,1},
+     {"hexists",hexistsCommand,3,0,NULL,1,1,1},
+     {"incrby",incrbyCommand,3,REDIS_CMD_DENYOOM,NULL,1,1,1},
+     {"decrby",decrbyCommand,3,REDIS_CMD_DENYOOM,NULL,1,1,1},
+     {"getset",getsetCommand,3,REDIS_CMD_DENYOOM,NULL,1,1,1},
+     {"mset",msetCommand,-3,REDIS_CMD_DENYOOM,NULL,1,-1,2},
+     {"msetnx",msetnxCommand,-3,REDIS_CMD_DENYOOM,NULL,1,-1,2},
+     {"randomkey",randomkeyCommand,1,0,NULL,0,0,0},
+     {"select",selectCommand,2,0,NULL,0,0,0},
+     {"move",moveCommand,3,0,NULL,1,1,1},
+     {"rename",renameCommand,3,0,NULL,1,1,1},
+     {"renamenx",renamenxCommand,3,0,NULL,1,1,1},
+     {"expire",expireCommand,3,0,NULL,0,0,0},
+     {"expireat",expireatCommand,3,0,NULL,0,0,0},
+     {"keys",keysCommand,2,0,NULL,0,0,0},
+     {"dbsize",dbsizeCommand,1,0,NULL,0,0,0},
+     {"auth",authCommand,2,0,NULL,0,0,0},
+     {"ping",pingCommand,1,0,NULL,0,0,0},
+     {"echo",echoCommand,2,0,NULL,0,0,0},
+     {"save",saveCommand,1,0,NULL,0,0,0},
+     {"bgsave",bgsaveCommand,1,0,NULL,0,0,0},
+     {"bgrewriteaof",bgrewriteaofCommand,1,0,NULL,0,0,0},
+     {"shutdown",shutdownCommand,1,0,NULL,0,0,0},
+     {"lastsave",lastsaveCommand,1,0,NULL,0,0,0},
+     {"type",typeCommand,2,0,NULL,1,1,1},
+     {"multi",multiCommand,1,0,NULL,0,0,0},
+     {"exec",execCommand,1,REDIS_CMD_DENYOOM,execBlockClientOnSwappedKeys,0,0,0},
+     {"discard",discardCommand,1,0,NULL,0,0,0},
+     {"sync",syncCommand,1,0,NULL,0,0,0},
+     {"flushdb",flushdbCommand,1,0,NULL,0,0,0},
+     {"flushall",flushallCommand,1,0,NULL,0,0,0},
+     {"sort",sortCommand,-2,REDIS_CMD_DENYOOM,NULL,1,1,1},
+     {"info",infoCommand,1,0,NULL,0,0,0},
+     {"monitor",monitorCommand,1,0,NULL,0,0,0},
+     {"ttl",ttlCommand,2,0,NULL,1,1,1},
+     {"persist",persistCommand,2,0,NULL,1,1,1},
+     {"slaveof",slaveofCommand,3,0,NULL,0,0,0},
+     {"debug",debugCommand,-2,0,NULL,0,0,0},
+     {"config",configCommand,-2,0,NULL,0,0,0},
+     {"subscribe",subscribeCommand,-2,0,NULL,0,0,0},
+     {"unsubscribe",unsubscribeCommand,-1,0,NULL,0,0,0},
+     {"psubscribe",psubscribeCommand,-2,0,NULL,0,0,0},
+     {"punsubscribe",punsubscribeCommand,-1,0,NULL,0,0,0},
+     {"publish",publishCommand,3,REDIS_CMD_FORCE_REPLICATION,NULL,0,0,0},
+     {"watch",watchCommand,-2,0,NULL,0,0,0},
+     {"unwatch",unwatchCommand,1,0,NULL,0,0,0}
  };
  
  /*============================ Utility functions ============================ */
diff --cc src/redis.h
Simple merge
diff --cc src/t_zset.c
Simple merge