命令扩展
为了便于后续对redis操作在底层扩展,我们对go-redis 命令进行了统一封装
所有命令位于redisdao/command.go文件中
示例
我们先看下Get, Set 在redisdao中的实现方式
func (this *xesRedis) Get(keyName string, keyParams []interface{}) (back string, err error) {this.setInfo(keyName, keyParams, "Get", []interface{}{})res := this.exec()return res.ToString()}func (this *xesRedis) Set(keyName string, keyParams []interface{}, value interface{}, ex int64) (back string, err error) {args := []interface{}{value}if ex > 0 {args = append(args, "ex")args = append(args, ex)}this.setInfo(keyName, keyParams, "Set", args)return this.execCmd().ToString()}
参数keyParams 为切片类型,这个主要是为了格式化 keyName 时使用,比如我们keyName 可能是形如my_redis_key_%v_%v 这个样的带有占位符的字符串
这样的设计主要是为了使我们的key更通用!
exec() or execCmd() ?
- exec() 同步
- execCmd() 支持协程异步执行
