今天在搞go的redis,使用的是redigo
redigo的执行动作都是通过Do来进行的
//Do定义
func (c *conn) Do(cmd string, args ...interface{}) (interface{}, error)
他使用了可变参数,我个人想在他的基础上做改进, 用hash把key分布到不同节点,在业务端做分库, 然后我新写了一个func:
func CallDo(cmd string, args ...interface{}) (interface{}, error){
//TODO:查询redis子节点
return rc.Do(cmd, args)
}
现在Do
和CallDo
的问题是,我在CallDo
也使用了可变参数, 在传到Do
的时候参数个数就变了, 想问大神们这个有解决办法吗,或者 go有类似call_user_func
这种回调吗
好吧,我刚写完问题就找到了, 在 CallDo 里面的 Do参数改为
rc.Do(cmd, args...)