package redis import ( redisdb "github.com/gomodule/redigo/redis" ) //list 尾部增加值 func Rpush(key string, field interface{}) (int64, error) { c := GetConn() reply, err := c.Do("RPUSH", key, field) CloseConn(c) if err != nil { return 0, err } return redisdb.Int64(reply, nil) } //移除列表的最后一个元素,返回值为移除的元素。 func Rpop(key string) ([]byte, error) { c := GetConn() ret, err := c.Do("RPOP", key) CloseConn(c) if err != nil { return nil, err } reply, err := redisdb.Bytes(ret, err) return reply, err } //list 头部增加值 func Lpush(key string, field interface{}) (int64, error) { c := GetConn() reply, err := c.Do("LPUSH", key, field) CloseConn(c) if err != nil { return 0, err } return redisdb.Int64(reply, nil) } //list 长度 func Llen(key string) (int64, error) { c := GetConn() reply, err := c.Do("LLEN", key) CloseConn(c) if err != nil { return 0, err } return redisdb.Int64(reply, nil) } //list 通过索引设置列表元素的值 LSET key index value func Lset(key string, index int, value interface{}) (interface{}, error) { c := GetConn() reply, err := c.Do("LSET", key, index, value) CloseConn(c) return reply, err } /* LRANGE key start stop 获取列表指定范围内的元素 */ func Lrange(key string, start, stop int64) ([][]byte, error) { c := GetConn() ret, err := c.Do("LRANGE", key, start, stop) reply := make([][]byte, 0) if err == nil { reply, err = redisdb.ByteSlices(ret, err) } CloseConn(c) return reply, err }