Commit 8f83d3226b416e7a6517346ace5492a00505f6b3

Authored by zhangqijia
1 parent 29a163be

redis 管道操作

Showing 1 changed file with 23 additions and 0 deletions   Show diff stats
common/db/redisproxy/redis.go
... ... @@ -36,6 +36,29 @@ func redisCommand(command string, args ...interface{}) (reply interface{}, err e
36 36 return conn.Do(command , args...)
37 37 }
38 38  
  39 +
  40 +func ExpireKey(key interface{}, ttl interface{}) (reply interface{}, err error) {
  41 + return redisCommand("expire", key, ttl)
  42 +}
  43 +
  44 +//redis 管道操作
  45 +func PipLine(f func(conn redis.Conn)) {
  46 + conn := RedisPool.Get()
  47 + defer conn.Close()
  48 + f(conn)
  49 +}
  50 +
  51 +func PipLineTest() {
  52 + PipLine(func(c redis.Conn) {
  53 + c.Send("SET", "foo", "bar")
  54 + c.Send("GET", "foo")
  55 + c.Flush()
  56 + //receive一次只从结果中拿出一个send的命令进行处理
  57 + c.Receive() // reply from SET
  58 + _, _ = c.Receive() // reply from GET
  59 + })
  60 +}
  61 +
39 62 func SETNX(args ...interface{}) (reply interface{}, err error) {
40 63 return redisCommand("SETNX", args...)
41 64 }
... ...