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
|
|
}
|