github.com/hdt3213/godis@v1.2.9/cluster/router.go (about) 1 package cluster 2 3 import "github.com/hdt3213/godis/interface/redis" 4 5 // CmdLine is alias for [][]byte, represents a command line 6 type CmdLine = [][]byte 7 8 func makeRouter() map[string]CmdFunc { 9 routerMap := make(map[string]CmdFunc) 10 routerMap["ping"] = ping 11 routerMap["info"] = info 12 13 routerMap["prepare"] = execPrepare 14 routerMap["commit"] = execCommit 15 routerMap["rollback"] = execRollback 16 routerMap["del"] = Del 17 18 routerMap["expire"] = defaultFunc 19 routerMap["expireat"] = defaultFunc 20 routerMap["expiretime"] = defaultFunc 21 routerMap["pexpire"] = defaultFunc 22 routerMap["pexpireat"] = defaultFunc 23 routerMap["pexpiretime"] = defaultFunc 24 routerMap["ttl"] = defaultFunc 25 routerMap["pttl"] = defaultFunc 26 routerMap["persist"] = defaultFunc 27 routerMap["exists"] = defaultFunc 28 routerMap["type"] = defaultFunc 29 routerMap["rename"] = Rename 30 routerMap["renamenx"] = RenameNx 31 routerMap["copy"] = Copy 32 33 routerMap["set"] = defaultFunc 34 routerMap["setnx"] = defaultFunc 35 routerMap["setex"] = defaultFunc 36 routerMap["psetex"] = defaultFunc 37 routerMap["mset"] = MSet 38 routerMap["mget"] = MGet 39 routerMap["msetnx"] = MSetNX 40 routerMap["get"] = defaultFunc 41 routerMap["getex"] = defaultFunc 42 routerMap["getset"] = defaultFunc 43 routerMap["getdel"] = defaultFunc 44 routerMap["incr"] = defaultFunc 45 routerMap["incrby"] = defaultFunc 46 routerMap["incrbyfloat"] = defaultFunc 47 routerMap["decr"] = defaultFunc 48 routerMap["decrby"] = defaultFunc 49 routerMap["randomkey"] = randomkey 50 51 routerMap["lpush"] = defaultFunc 52 routerMap["lpushx"] = defaultFunc 53 routerMap["rpush"] = defaultFunc 54 routerMap["rpushx"] = defaultFunc 55 routerMap["lpop"] = defaultFunc 56 routerMap["rpop"] = defaultFunc 57 //routerMap["rpoplpush"] = RPopLPush 58 routerMap["lrem"] = defaultFunc 59 routerMap["llen"] = defaultFunc 60 routerMap["lindex"] = defaultFunc 61 routerMap["lset"] = defaultFunc 62 routerMap["lrange"] = defaultFunc 63 64 routerMap["hset"] = defaultFunc 65 routerMap["hsetnx"] = defaultFunc 66 routerMap["hget"] = defaultFunc 67 routerMap["hexists"] = defaultFunc 68 routerMap["hdel"] = defaultFunc 69 routerMap["hlen"] = defaultFunc 70 routerMap["hstrlen"] = defaultFunc 71 routerMap["hmget"] = defaultFunc 72 routerMap["hmset"] = defaultFunc 73 routerMap["hkeys"] = defaultFunc 74 routerMap["hvals"] = defaultFunc 75 routerMap["hgetall"] = defaultFunc 76 routerMap["hincrby"] = defaultFunc 77 routerMap["hincrbyfloat"] = defaultFunc 78 routerMap["hrandfield"] = defaultFunc 79 80 routerMap["sadd"] = defaultFunc 81 routerMap["sismember"] = defaultFunc 82 routerMap["srem"] = defaultFunc 83 routerMap["spop"] = defaultFunc 84 routerMap["scard"] = defaultFunc 85 routerMap["smembers"] = defaultFunc 86 routerMap["sinter"] = defaultFunc 87 routerMap["sinterstore"] = defaultFunc 88 routerMap["sunion"] = defaultFunc 89 routerMap["sunionstore"] = defaultFunc 90 routerMap["sdiff"] = defaultFunc 91 routerMap["sdiffstore"] = defaultFunc 92 routerMap["srandmember"] = defaultFunc 93 94 routerMap["zadd"] = defaultFunc 95 routerMap["zscore"] = defaultFunc 96 routerMap["zincrby"] = defaultFunc 97 routerMap["zrank"] = defaultFunc 98 routerMap["zcount"] = defaultFunc 99 routerMap["zrevrank"] = defaultFunc 100 routerMap["zcard"] = defaultFunc 101 routerMap["zrange"] = defaultFunc 102 routerMap["zrevrange"] = defaultFunc 103 routerMap["zrangebyscore"] = defaultFunc 104 routerMap["zrevrangebyscore"] = defaultFunc 105 routerMap["zrem"] = defaultFunc 106 routerMap["zremrangebyscore"] = defaultFunc 107 routerMap["zremrangebyrank"] = defaultFunc 108 109 routerMap["geoadd"] = defaultFunc 110 routerMap["geopos"] = defaultFunc 111 routerMap["geodist"] = defaultFunc 112 routerMap["geohash"] = defaultFunc 113 routerMap["georadius"] = defaultFunc 114 routerMap["georadiusbymember"] = defaultFunc 115 116 routerMap["publish"] = Publish 117 routerMap[relayPublish] = onRelayedPublish 118 routerMap["subscribe"] = Subscribe 119 routerMap["unsubscribe"] = UnSubscribe 120 121 routerMap["flushdb"] = FlushDB 122 routerMap["flushall"] = FlushAll 123 routerMap[relayMulti] = execRelayedMulti 124 routerMap["getver"] = defaultFunc 125 routerMap["watch"] = execWatch 126 127 return routerMap 128 } 129 130 // relay command to responsible peer, and return its protocol to client 131 func defaultFunc(cluster *Cluster, c redis.Connection, args [][]byte) redis.Reply { 132 key := string(args[1]) 133 peer := cluster.peerPicker.PickNode(key) 134 return cluster.relay(peer, c, args) 135 }