Commit 8f83d3226b416e7a6517346ace5492a00505f6b3
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 | } | ... | ... |