Documentation ¶
Index ¶
- Constants
- Variables
- func BytesMap(result interface{}, err error) (map[string][]byte, error)
- func RedisSetAddr(addr string) redisoptions
- func RedisSetAuth(auth string) redisoptions
- func RedisSetErrRetry(errRetry int) redisoptions
- func RedisSetIdleTimeout(idleTimeout time.Duration) redisoptions
- func RedisSetIndexDB(indexdb int) redisoptions
- func RedisSetMaxActive(maxactive int) redisoptions
- func RedisSetMaxIdle(maxidle int) redisoptions
- func RedisSeterrFunc(errF errFunc) redisoptions
- func RedisUsing(rd *RedisHandleModel, f func(rd *RedisHandleModel))
- type RedisAccess
- type RedisBitOperation
- type RedisHandleModel
- func (rd *RedisHandleModel) Append(key, val string) (int, error)
- func (rd *RedisHandleModel) Auth(pwd string) error
- func (rd *RedisHandleModel) BitCount(key string, start, end int) (int, error)
- func (rd *RedisHandleModel) Bitop(bitopt RedisBitOperation, deskey string, keys ...string) (int, error)
- func (rd *RedisHandleModel) Blpop(timeout string, keys ...string) (string, string, error)
- func (rd *RedisHandleModel) Brpop(timeout string, keys ...string) (string, string, error)
- func (rd *RedisHandleModel) Close() error
- func (rd *RedisHandleModel) Decr(key string) (int, error)
- func (rd *RedisHandleModel) Decrby(key string, dec int) (int, error)
- func (rd *RedisHandleModel) Del(keys ...interface{}) (int, error)
- func (rd *RedisHandleModel) Dispose()
- func (rd *RedisHandleModel) Do(commandName string, args ...interface{}) (reply interface{}, err error)
- func (rd *RedisHandleModel) Exists(key string) (int, error)
- func (rd *RedisHandleModel) Expire(key string, ex int64) (int, error)
- func (rd *RedisHandleModel) Expireat(key string, unix int) (int, error)
- func (rd *RedisHandleModel) Get(key string) (string, error)
- func (rd *RedisHandleModel) GetBit(key string, offset int) (int, error)
- func (rd *RedisHandleModel) GetBytes(key string) ([]byte, error)
- func (rd *RedisHandleModel) GetRange(key string, start, end int) (string, error)
- func (rd *RedisHandleModel) GetSet(key, val string) (string, error)
- func (rd *RedisHandleModel) HScan(key string, cursor int, match string, count int) (int, []string, error)
- func (rd *RedisHandleModel) HScanBytes(key string, cursor int, match string, count int) (int, map[string][]byte, error)
- func (rd *RedisHandleModel) Hdel(key string, fields ...string) (int, error)
- func (rd *RedisHandleModel) Hexists(key, field string) (int, error)
- func (rd *RedisHandleModel) Hget(key, field string) (string, error)
- func (rd *RedisHandleModel) HgetBytes(key, field string) ([]byte, error)
- func (rd *RedisHandleModel) HgetallByBytesMap(key string) (map[string][]byte, error)
- func (rd *RedisHandleModel) HgetallByInt64Map(key string) (map[string]int64, error)
- func (rd *RedisHandleModel) HgetallByIntMap(key string) (map[string]int, error)
- func (rd *RedisHandleModel) HgetallByStringMap(key string) (map[string]string, error)
- func (rd *RedisHandleModel) Hincrby(key, field string, inc int) (int, error)
- func (rd *RedisHandleModel) HincrbyFloat(key, field string, inc float64) (float64, error)
- func (rd *RedisHandleModel) Hkeys(key string) ([]string, error)
- func (rd *RedisHandleModel) Hlen(key string) (int, error)
- func (rd *RedisHandleModel) Hmget(key string, fields ...string) (map[string]string, error)
- func (rd *RedisHandleModel) Hmset(key string, fieldvals ...interface{}) (string, error)
- func (rd *RedisHandleModel) HsetNx(key, field, val string) (int, error)
- func (rd *RedisHandleModel) Hvals(key string) ([]string, error)
- func (rd *RedisHandleModel) Incr(key string) (int, error)
- func (rd *RedisHandleModel) Incrby(key string, inc int) (int, error)
- func (rd *RedisHandleModel) IncrbyFloat(key string, inc float64) (float64, error)
- func (rd *RedisHandleModel) Keys(pat string) ([]string, error)
- func (rd *RedisHandleModel) LLen(key string) (int, error)
- func (rd *RedisHandleModel) Lindex(key string, index int) (string, error)
- func (rd *RedisHandleModel) Linsert(key string, site RedisListSite, pivot, val string) (int, error)
- func (rd *RedisHandleModel) Lpop(key string) (string, error)
- func (rd *RedisHandleModel) Lpush(key, val string) (int, error)
- func (rd *RedisHandleModel) LpushX(key, val string) (int, error)
- func (rd *RedisHandleModel) Lpushs(key string, vals ...string) (int, error)
- func (rd *RedisHandleModel) Lrange(key string, start, stop int) ([]string, error)
- func (rd *RedisHandleModel) Lrem(key string, count int, val string) (int, error)
- func (rd *RedisHandleModel) Lset(key string, index int, val string) (string, error)
- func (rd *RedisHandleModel) Ltrim(key string, start, stop int) (string, error)
- func (rd *RedisHandleModel) MGet(keys ...interface{}) ([]string, error)
- func (rd *RedisHandleModel) MSet(keyvals ...interface{})
- func (rd *RedisHandleModel) MsetNx(keyvals ...interface{}) (int, error)
- func (rd *RedisHandleModel) Multi(f func()) error
- func (rd *RedisHandleModel) Persist(key string) (int, error)
- func (rd *RedisHandleModel) Ping() error
- func (rd *RedisHandleModel) RedisWatch(f func() error, keys ...interface{}) error
- func (rd *RedisHandleModel) Rename(key, newkey string) (string, error)
- func (rd *RedisHandleModel) RenameNx(key, newkey string) (int, error)
- func (rd *RedisHandleModel) Rpop(key string) (string, error)
- func (rd *RedisHandleModel) RpopLpush(source, dest string) (string, error)
- func (rd *RedisHandleModel) Rpush(key, val string) (int, error)
- func (rd *RedisHandleModel) RpushX(key, val string) (int, error)
- func (rd *RedisHandleModel) Rpushs(key string, vals ...string) (int, error)
- func (rd *RedisHandleModel) SScan(key string, cursor int, match string, count int) (int, []string, error)
- func (rd *RedisHandleModel) Sadd(key string, member string) (int, error)
- func (rd *RedisHandleModel) Sadds(key string, members ...string) (int, error)
- func (rd *RedisHandleModel) Scan(cursor int, match string, count int) (int, []string, error)
- func (rd *RedisHandleModel) Scard(key string) (int, error)
- func (rd *RedisHandleModel) Sdiff(keys ...interface{}) ([]string, error)
- func (rd *RedisHandleModel) SdiffStore(dest string, keys ...string) (int, error)
- func (rd *RedisHandleModel) Select(index int) error
- func (rd *RedisHandleModel) Set(key string, val string, ex int64, n RedisSetParam) (interface{}, error)
- func (rd *RedisHandleModel) SetBit(key string, offset, val int) (int, error)
- func (rd *RedisHandleModel) SetBytes(key string, val []byte, ex int64, n RedisSetParam) (interface{}, error)
- func (rd *RedisHandleModel) SetRange(key string, offset int, val string) (int, error)
- func (rd *RedisHandleModel) Sinter(keys ...interface{}) ([]string, error)
- func (rd *RedisHandleModel) SinterStore(dest string, keys ...string) (int, error)
- func (rd *RedisHandleModel) Sismember(key, member string) (int, error)
- func (rd *RedisHandleModel) Smembers(key string) ([]string, error)
- func (rd *RedisHandleModel) Smove(source, dest, member string) (int, error)
- func (rd *RedisHandleModel) Spop(key string) (string, error)
- func (rd *RedisHandleModel) SrandMember(key string, count int) ([]string, error)
- func (rd *RedisHandleModel) Srem(key string, members ...string) (int, error)
- func (rd *RedisHandleModel) StrLen(key string) (int, error)
- func (rd *RedisHandleModel) Sunion(keys ...interface{}) ([]string, error)
- func (rd *RedisHandleModel) SunionStore(dest string, keys ...string) (int, error)
- func (rd *RedisHandleModel) TTL(key string) (int, error)
- func (rd *RedisHandleModel) Type(key string) (string, error)
- func (rd *RedisHandleModel) ZScan(key string, cursor int, match string, count int) (int, []string, error)
- func (rd *RedisHandleModel) Zadd(key string, score interface{}, member string) (int, error)
- func (rd *RedisHandleModel) Zadds(key string, li map[string]interface{}) (int, error)
- func (rd *RedisHandleModel) Zcard(key string) (int, error)
- func (rd *RedisHandleModel) Zcount(key string, min, max interface{}) (int, error)
- func (rd *RedisHandleModel) Zincrby(key string, inc float64, member string) (string, error)
- func (rd *RedisHandleModel) Zrange(key string, start, stop int) ([]string, error)
- func (rd *RedisHandleModel) ZrangeByScore(key string, min, max interface{}) ([]string, error)
- func (rd *RedisHandleModel) ZrangeByScoreLimit(key string, min, max interface{}, offset, count int) ([]string, error)
- func (rd *RedisHandleModel) ZrangeByScoreWithScore(key string, min, max interface{}) (map[string]string, error)
- func (rd *RedisHandleModel) ZrangeByScoreWithScoreLimit(key string, min, max interface{}, offset, count int) (map[string]string, error)
- func (rd *RedisHandleModel) ZrangeWithScores(key string, start, stop int) (map[string]string, error)
- func (rd *RedisHandleModel) ZrangeWithScoresByInt(key string, start, stop int) (map[string]int, error)
- func (rd *RedisHandleModel) Zrank(key, member string) (int, error)
- func (rd *RedisHandleModel) Zrem(key string, members ...string) (int, error)
- func (rd *RedisHandleModel) ZremRangeByRank(key string, start, stop int) (int, error)
- func (rd *RedisHandleModel) ZremRangeByScore(key string, min, max interface{}) (int, error)
- func (rd *RedisHandleModel) ZrevRange(key string, start, stop int) ([]string, error)
- func (rd *RedisHandleModel) ZrevRangeByScore(key string, min, max interface{}) ([]string, error)
- func (rd *RedisHandleModel) ZrevRangeByScoreLimit(key string, min, max interface{}, offset, count int) ([]string, error)
- func (rd *RedisHandleModel) ZrevRangeByScoreWithScore(key string, min, max interface{}) (map[string]string, error)
- func (rd *RedisHandleModel) ZrevRangeByScoreWithScoreLimit(key string, min, max interface{}, offset, count int) (map[string]string, error)
- func (rd *RedisHandleModel) ZrevRangeWithScores(key string, start, stop int) (map[string]string, error)
- func (rd *RedisHandleModel) ZrevRangeWithScoresByInt(key string, start, stop int) (map[string]int, error)
- func (rd *RedisHandleModel) ZrevRank(key, member string) (int, error)
- func (rd *RedisHandleModel) Zscore(key, member string) (string, error)
- type RedisListSite
- type RedisSetParam
Constants ¶
const ( ListSite_BEFORE = "BEFORE" //在pivot之前,写入value ListSite_AFTER = "AFTER" //在pivot之后,写入value )
Variables ¶
var (
ErrParam = errors.New("Param Error.")
)
Functions ¶
func RedisSetIdleTimeout ¶
最大的空闲连接等待时间,超过此时间后,空闲连接将被关闭(秒)
func RedisSetMaxActive ¶
func RedisSetMaxActive(maxactive int) redisoptions
最大的激活连接数,表示同时最多有N个连接 ,为0事表示没有限制
func RedisSetMaxIdle ¶
func RedisSetMaxIdle(maxidle int) redisoptions
设置redis最大的空闲连接数,表示即使没有redis连接时依然可以保持N个空闲的连接,而不被清除,随时处于待命状态
Types ¶
type RedisAccess ¶
type RedisAccess struct { DBConobj *redis.Pool //redis连接池 // contains filtered or unexported fields }
RedisAccess redis 管理器
func (*RedisAccess) GetConn ¶
func (access *RedisAccess) GetConn() *RedisHandleModel
GetConn 拿到一个可用的连接,你要在这句之后写上:defer conn.Close() 用来在使用完之后把连接放回池子里去
type RedisBitOperation ¶
type RedisBitOperation int
const ( Bit_Defualt RedisBitOperation = iota //无效 Bit_And //逻辑与 Bit_Or //逻辑或 Bit_Xor //逻辑异或 Bit_Not //逻辑非 )
type RedisHandleModel ¶
RedisHandleModel 自己把reids的一些常用命令写在这里
func (*RedisHandleModel) Append ¶
func (rd *RedisHandleModel) Append(key, val string) (int, error)
如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾。 如果 key 不存在, APPEND 就简单地将给定 key 设为 value ,就像执行 SET key value 一样。 返回值: 追加 value 之后, key 中字符串的长度。
func (*RedisHandleModel) Auth ¶
func (rd *RedisHandleModel) Auth(pwd string) error
AUTH password 通过设置配置文件中 requirepass 项的值(使用命令 CONFIG SET requirepass password ),可以使用密码来保护 Redis 服务器。 返回 error==nil 就是成功的
func (*RedisHandleModel) BitCount ¶
func (rd *RedisHandleModel) BitCount(key string, start, end int) (int, error)
BITCOUNT key [start] [end] 计算给定字符串中,被设置为 1 的比特位的数量。 一般情况下,给定的整个字符串都会被进行计数,通过指定额外的 start 或 end 参数,可以让计数只在特定的位上进行。 start 和 end 参数的设置和 GETRANGE 命令类似,都可以使用负数值:比如 -1 表示最后一个位,而 -2 表示倒数第二个位,以此类推。 不存在的 key 被当成是空字符串来处理,因此对一个不存在的 key 进行 BITCOUNT 操作,结果为 0 。 返回值: 被设置为 1 的位的数量。
如果 start==end 时,表示所有数据
func (*RedisHandleModel) Bitop ¶
func (rd *RedisHandleModel) Bitop(bitopt RedisBitOperation, deskey string, keys ...string) (int, error)
func (*RedisHandleModel) Blpop ¶
BLPOP key [key ...] timeout 简答说就是从这几个key的列表中读一个数据出来,如果没有就等待(阻塞)时间为timeout, timeout==0为无限等待; 返回数据为:从哪个key读出来的,读出来的值,可能的错误; 说明: BLPOP 是列表的阻塞式(blocking)弹出原语。 它是 LPOP 命令的阻塞版本,当给定列表内没有任何元素可供弹出的时候,连接将被 BLPOP 命令阻塞,直到等待超时或发现可弹出元素为止。 当给定多个 key 参数时,按参数 key 的先后顺序依次检查各个列表,弹出第一个非空列表的头元素。 例: 当 BLPOP 被调用时,如果给定 key 内至少有一个非空列表,那么弹出遇到的第一个非空列表的头元素,并和被弹出元素所属的列表的名字一起,组成结果返回给调用者。 当存在多个给定 key 时, BLPOP 按给定 key 参数排列的先后顺序,依次检查各个列表。 假设现在有 job 、 command 和 request 三个列表,其中 job 不存在, command 和 request 都持有非空列表。考虑以下命令: BLPOP job command request 0 BLPOP 保证返回的元素来自 command ,因为它是按”查找 job -> 查找 command -> 查找 request “这样的顺序,第一个找到的非空列表。
func (*RedisHandleModel) Brpop ¶
BRPOP key [key ...] timeout BRPOP 是列表的阻塞式(blocking)弹出原语。 与BLPOP一样,只是弹出元素的位置不同
func (*RedisHandleModel) Close ¶
func (rd *RedisHandleModel) Close() error
func (*RedisHandleModel) Decr ¶
func (rd *RedisHandleModel) Decr(key string) (int, error)
将 key 中储存的数字值减一。 如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECR 操作。 如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。 返回值: 执行 DECR 命令之后 key 的值。
func (*RedisHandleModel) Decrby ¶
func (rd *RedisHandleModel) Decrby(key string, dec int) (int, error)
将 key 所储存的值减去减量 decrement 。 如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECRBY 操作。 如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。 返回值: 减去 decrement 之后, key 的值。
func (*RedisHandleModel) Del ¶
func (rd *RedisHandleModel) Del(keys ...interface{}) (int, error)
DEL key [key ...] 删除给定的一个或多个 key 。 不存在的 key 会被忽略。 时间复杂度: O(N), N 为被删除的 key 的数量。 删除单个字符串类型的 key ,时间复杂度为O(1)。 删除单个列表、集合、有序集合或哈希表类型的 key ,时间复杂度为O(M), M 为以上数据结构内的元素数量。 返回值: 被删除 key 的数量。
func (*RedisHandleModel) Dispose ¶
func (rd *RedisHandleModel) Dispose()
func (*RedisHandleModel) Do ¶
func (rd *RedisHandleModel) Do(commandName string, args ...interface{}) (reply interface{}, err error)
func (*RedisHandleModel) Exists ¶
func (rd *RedisHandleModel) Exists(key string) (int, error)
EXISTS key 检查给定 key 是否存在。 返回值: 若 key 存在,返回 1 ,否则返回 0 。
func (*RedisHandleModel) Expire ¶
func (rd *RedisHandleModel) Expire(key string, ex int64) (int, error)
EXPIRE key seconds 为给定 key 设置生存时间,当 key 过期时(生存时间为 0 ),它会被自动删除。 返回值: 设置成功返回 1 。 当 key 不存在或者不能为 key 设置生存时间时(比如在低于 2.1.3 版本的 Redis 中你尝试更新 key 的生存时间),返回 0 。
func (*RedisHandleModel) Expireat ¶
func (rd *RedisHandleModel) Expireat(key string, unix int) (int, error)
EXPIREAT key timestamp EXPIREAT 的作用和 EXPIRE 类似,都用于为 key 设置生存时间。 不同在于 EXPIREAT 命令接受的时间参数是 UNIX 时间戳(unix timestamp)。
例: redis> EXPIREAT cache 1355292000 # 这个 key 将在 2012.12.12 过期 (integer) 1 redis> TTL cache (integer) 45081860
func (*RedisHandleModel) Get ¶
func (rd *RedisHandleModel) Get(key string) (string, error)
当 key 不存在时,返回 nil ,否则,返回 key 的值。 如果 key 不是字符串类型,那么返回一个错误。
func (*RedisHandleModel) GetBit ¶
func (rd *RedisHandleModel) GetBit(key string, offset int) (int, error)
对 key 所储存的字符串值,获取指定偏移量上的位(bit)。 当 offset 比字符串值的长度大,或者 key 不存在时,返回 0 。
func (*RedisHandleModel) GetBytes ¶
func (rd *RedisHandleModel) GetBytes(key string) ([]byte, error)
当 key 不存在时,返回 nil ,否则,返回 key 的值。 如果 key 不是字符串类型,那么返回一个错误。
func (*RedisHandleModel) GetRange ¶
func (rd *RedisHandleModel) GetRange(key string, start, end int) (string, error)
GETRANGE key start end 返回 key 中字符串值的子字符串,字符串的截取范围由 start 和 end 两个偏移量决定(包括 start 和 end 在内)。 负数偏移量表示从字符串最后开始计数, -1 表示最后一个字符, -2 表示倒数第二个,以此类推。 GETRANGE 通过保证子字符串的值域(range)不超过实际字符串的值域来处理超出范围的值域请求。 时间复杂度: O(N), N 为要返回的字符串的长度。 复杂度最终由字符串的返回值长度决定,但因为从已有字符串中取出子字符串的操作非常廉价(cheap),所以对于长度不大的字符串,该操作的复杂度也可看作O(1)。 返回值: 截取得出的子字符串。
func (*RedisHandleModel) GetSet ¶
func (rd *RedisHandleModel) GetSet(key, val string) (string, error)
GETSET key value 将给定 key 的值设为 value ,并返回 key 的旧值(old value)。 当 key 存在但不是字符串类型时,返回一个错误。 返回值: 返回给定 key 的旧值。 当 key 没有旧值时,也即是, key 不存在时,返回 nil 。
func (*RedisHandleModel) HScan ¶
func (rd *RedisHandleModel) HScan(key string, cursor int, match string, count int) (int, []string, error)
HSCAN key cursor [MATCH pattern] [COUNT count] 命令用于迭代哈希键中的键值对。
func (*RedisHandleModel) HScanBytes ¶
func (*RedisHandleModel) Hdel ¶
func (rd *RedisHandleModel) Hdel(key string, fields ...string) (int, error)
HDEL key field [field ...]
删除哈希表 key 中的一个或多个指定域,不存在的域将被忽略。 返回值: 被成功移除的域的数量,不包括被忽略的域
func (*RedisHandleModel) Hexists ¶
func (rd *RedisHandleModel) Hexists(key, field string) (int, error)
HEXISTS key field 查看哈希表 key 中,给定域 field 是否存在。 返回值: 如果哈希表含有给定域,返回 1 。 如果哈希表不含有给定域,或 key 不存在,返回 0 。
func (*RedisHandleModel) Hget ¶
func (rd *RedisHandleModel) Hget(key, field string) (string, error)
HGET key field 返回哈希表 key 中给定域 field 的值。 返回值: 给定域的值。 当给定域不存在或是给定 key 不存在时,返回 nil 。
func (*RedisHandleModel) HgetBytes ¶
func (rd *RedisHandleModel) HgetBytes(key, field string) ([]byte, error)
func (*RedisHandleModel) HgetallByBytesMap ¶
func (rd *RedisHandleModel) HgetallByBytesMap(key string) (map[string][]byte, error)
同 HgetallByStringMap
func (*RedisHandleModel) HgetallByInt64Map ¶
func (rd *RedisHandleModel) HgetallByInt64Map(key string) (map[string]int64, error)
同 HgetallByStringMap
func (*RedisHandleModel) HgetallByIntMap ¶
func (rd *RedisHandleModel) HgetallByIntMap(key string) (map[string]int, error)
同 HgetallByStringMap
func (*RedisHandleModel) HgetallByStringMap ¶
func (rd *RedisHandleModel) HgetallByStringMap(key string) (map[string]string, error)
HGETALL key 返回哈希表 key 中,所有的域和值。 在返回值里,紧跟每个域名(field name)之后是域的值(value),所以返回值的长度是哈希表大小的两倍。 返回值: 以列表形式返回哈希表的域和域的值。 若 key 不存在,返回空列表。
返回值为Map,分为三种不同类型的key:string,int,int64类型
func (*RedisHandleModel) Hincrby ¶
func (rd *RedisHandleModel) Hincrby(key, field string, inc int) (int, error)
HINCRBY key field increment 为哈希表 key 中的域 field 的值加上增量 increment 。 增量也可以为负数,相当于对给定域进行减法操作。 如果 key 不存在,一个新的哈希表被创建并执行 HINCRBY 命令。 如果域 field 不存在,那么在执行命令前,域的值被初始化为 0 。 对一个储存字符串值的域 field 执行 HINCRBY 命令将造成一个错误。 本操作的值被限制在 64 位(bit)有符号数字表示之内。 返回值: 执行 HINCRBY 命令之后,哈希表 key 中域 field 的值。
func (*RedisHandleModel) HincrbyFloat ¶
func (rd *RedisHandleModel) HincrbyFloat(key, field string, inc float64) (float64, error)
同Hincrby 只是返回值类型为float64
func (*RedisHandleModel) Hkeys ¶
func (rd *RedisHandleModel) Hkeys(key string) ([]string, error)
HKEYS key 返回哈希表 key 中的所有域。 时间复杂度: O(N), N 为哈希表的大小。 返回值: 一个包含哈希表中所有域的表。 当 key 不存在时,返回一个空表。
func (*RedisHandleModel) Hlen ¶
func (rd *RedisHandleModel) Hlen(key string) (int, error)
HLEN key 返回哈希表 key 中域的数量。 时间复杂度: O(1) 返回值: 哈希表中域的数量。 当 key 不存在时,返回 0 。
func (*RedisHandleModel) Hmget ¶
HMGET key field [field ...] 返回哈希表 key 中,一个或多个给定域的值。 如果给定的域不存在于哈希表,那么返回一个 nil 值。 因为不存在的 key 被当作一个空哈希表来处理,所以对一个不存在的 key 进行 HMGET 操作将返回一个只带有 nil 值的表。
返回一个与传入field对应的map[string]string 如果对应的值为nil的话,这里的表现为“”
func (*RedisHandleModel) Hmset ¶
func (rd *RedisHandleModel) Hmset(key string, fieldvals ...interface{}) (string, error)
HMSET key field value [field value ...] 同时将多个 field-value (域-值)对设置到哈希表 key 中。 此命令会覆盖哈希表中已存在的域。 如果 key 不存在,一个空哈希表被创建并执行 HMSET 操作。 返回值: 如果命令执行成功,返回 OK 。 当 key 不是哈希表(hash)类型时,返回一个错误。
func (*RedisHandleModel) HsetNx ¶
func (rd *RedisHandleModel) HsetNx(key, field, val string) (int, error)
HSETNX key field value 将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在。 若域 field 已经存在,该操作无效。 如果 key 不存在,一个新哈希表被创建并执行 HSETNX 命令。 返回值: 设置成功,返回 1 。 如果给定域已经存在且没有操作被执行,返回 0 。
func (*RedisHandleModel) Hvals ¶
func (rd *RedisHandleModel) Hvals(key string) ([]string, error)
HVALS key 返回哈希表 key 中所有域的值。 时间复杂度: O(N), N 为哈希表的大小。 返回值: 一个包含哈希表中所有值的表。 当 key 不存在时,返回一个空表。
func (*RedisHandleModel) Incr ¶
func (rd *RedisHandleModel) Incr(key string) (int, error)
INCR key 将 key 中储存的数字值增一。 如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作。 如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。 返回值: 执行 INCR 命令之后 key 的值。
func (*RedisHandleModel) Incrby ¶
func (rd *RedisHandleModel) Incrby(key string, inc int) (int, error)
INCRBY key increment 将 key 所储存的值加上增量 increment 。 如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCRBY 命令。 如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。 返回值: 加上 increment 之后, key 的值。
func (*RedisHandleModel) IncrbyFloat ¶
func (rd *RedisHandleModel) IncrbyFloat(key string, inc float64) (float64, error)
INCRBYFLOAT key increment 为 key 中所储存的值加上浮点数增量 increment 。 如果 key 不存在,那么 INCRBYFLOAT 会先将 key 的值设为 0 ,再执行加法操作。 如果命令执行成功,那么 key 的值会被更新为(执行加法之后的)新值,并且新值会以字符串的形式返回给调用者。 无论是 key 的值,还是增量 increment ,都可以使用像 2.0e7 、 3e5 、 90e-2 那样的指数符号(exponential notation)来表示, 但是,执行 INCRBYFLOAT 命令之后的值总是以同样的形式储存,也即是,它们总是由一个数字,一个(可选的)小数点和一个任意位的小数部分组成(比如 3.14 、 69.768 ,诸如此类), 小数部分尾随的 0 会被移除,如果有需要的话,还会将浮点数改为整数(比如 3.0 会被保存成 3 )。 除此之外,无论加法计算所得的浮点数的实际精度有多长, INCRBYFLOAT 的计算结果也最多只能表示小数点的后十七位。 当以下任意一个条件发生时,返回一个错误: key 的值不是字符串类型(因为 Redis 中的数字和浮点数都以字符串的形式保存,所以它们都属于字符串类型) key 当前的值或者给定的增量 increment 不能解释(parse)为双精度浮点数(double precision floating point number)
func (*RedisHandleModel) Keys ¶
func (rd *RedisHandleModel) Keys(pat string) ([]string, error)
KEYS pattern
查找所有符合给定模式 pattern 的 key 。
KEYS * 匹配数据库中所有 key 。 KEYS h?llo 匹配 hello , hallo 和 hxllo 等。 KEYS h*llo 匹配 hllo 和 heeeeello 等。 KEYS h[ae]llo 匹配 hello 和 hallo ,但不匹配 hillo 。 特殊符号用 \ 隔开 注:KEYS 的速度非常快,但在一个大的数据库中使用它仍然可能造成性能问题, 如果你需要从一个数据集中查找特定的 key ,你最好还是用 Redis 的集合结构(set)来代替。 返回值: 符合给定模式的 key 列表。
func (*RedisHandleModel) LLen ¶
func (rd *RedisHandleModel) LLen(key string) (int, error)
LLEN key 返回列表 key 的长度。 如果 key 不存在,则 key 被解释为一个空列表,返回 0 . 如果 key 不是列表类型,返回一个错误。
func (*RedisHandleModel) Lindex ¶
func (rd *RedisHandleModel) Lindex(key string, index int) (string, error)
LINDEX key index 返回列表 key 中,下标为 index 的元素。 下标(index)参数 start 和 stop 都以 0 为底,也就是说,以 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。 如果 key 不是列表类型,返回一个错误。
func (*RedisHandleModel) Linsert ¶
func (rd *RedisHandleModel) Linsert(key string, site RedisListSite, pivot, val string) (int, error)
LINSERT key BEFORE|AFTER pivot value 将值 value 插入到列表 key 当中,位于值 pivot 之前或之后。 当 pivot 不存在于列表 key 时,不执行任何操作。 当 key 不存在时, key 被视为空列表,不执行任何操作。 如果 key 不是列表类型,返回一个错误。 时间复杂度: O(N), N 为寻找 pivot 过程中经过的元素数量。 返回值: 如果命令执行成功,返回插入操作完成之后,列表的长度。 如果没有找到 pivot ,返回 -1 。 如果 key 不存在或为空列表,返回 0 。
func (*RedisHandleModel) Lpop ¶
func (rd *RedisHandleModel) Lpop(key string) (string, error)
LPOP key 移除并返回列表 key 的头元素。 返回值: 列表的头元素。 当 key 不存在时,返回 nil 。
func (*RedisHandleModel) Lpush ¶
func (rd *RedisHandleModel) Lpush(key, val string) (int, error)
LPUSH key value [value ...] 将一个或多个值 value 插入到列表 key 的表头 如果有多个 value 值,那么各个 value 值按从左到右的顺序依次插入到表头: 比如说,对空列表 mylist 执行命令 LPUSH mylist a b c ,列表的值将是 c b a , 这等同于原子性地执行 LPUSH mylist a 、 LPUSH mylist b 和 LPUSH mylist c 三个命令。 如果 key 不存在,一个空列表会被创建并执行 LPUSH 操作。 返回值: 执行 LPUSH 命令后,列表的长度。
func (*RedisHandleModel) LpushX ¶
func (rd *RedisHandleModel) LpushX(key, val string) (int, error)
LPUSHX key value 将值 value 插入到列表 key 的表头,当且仅当 key 存在并且是一个列表。 和 LPUSH 命令相反,当 key 不存在时, LPUSHX 命令什么也不做。 返回值: LPUSHX 命令执行之后,表的长度。
func (*RedisHandleModel) Lpushs ¶
func (rd *RedisHandleModel) Lpushs(key string, vals ...string) (int, error)
LPUSH key value [value ...] 将一个或多个值 value 插入到列表 key 的表头 如果有多个 value 值,那么各个 value 值按从左到右的顺序依次插入到表头: 比如说,对空列表 mylist 执行命令 LPUSH mylist a b c ,列表的值将是 c b a , 这等同于原子性地执行 LPUSH mylist a 、 LPUSH mylist b 和 LPUSH mylist c 三个命令。 如果 key 不存在,一个空列表会被创建并执行 LPUSH 操作。 返回值: 执行 LPUSH 命令后,列表的长度。
func (*RedisHandleModel) Lrange ¶
func (rd *RedisHandleModel) Lrange(key string, start, stop int) ([]string, error)
LRANGE key start stop 返回列表 key 中指定区间内的元素,区间以偏移量 start 和 stop 指定。 下标(index)参数 start 和 stop 都以 0 为底,也就是说,以 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。 例子: 执行 LRANGE list 0 10 ,结果是一个包含11个元素的列表 时间复杂度: O(S+N), S 为偏移量 start , N 为指定区间内元素的数量。 返回值: 一个列表,包含指定区间内的元素。
func (*RedisHandleModel) Lrem ¶
LREM key count value 根据参数 count 的值,移除列表中与参数 value 相等的元素。 count 的值可以是以下几种: count > 0 : 从表头开始向表尾搜索,移除与 value 相等的元素,数量为 count 。 count < 0 : 从表尾开始向表头搜索,移除与 value 相等的元素,数量为 count 的绝对值。 count = 0 : 移除表中所有与 value 相等的值。 时间复杂度: O(N), N 为列表的长度。 返回值: 被移除元素的数量。 因为不存在的 key 被视作空表(empty list),所以当 key 不存在时, LREM 命令总是返回 0 。
func (*RedisHandleModel) Lset ¶
LSET key index value 将列表 key 下标为 index 的元素的值设置为 value 。 当 index 参数超出范围,或对一个空列表( key 不存在)进行 LSET 时,返回一个错误。 关于列表下标的更多信息,请参考 LINDEX 命令。 时间复杂度: 对头元素或尾元素进行 LSET 操作,复杂度为 O(1)。 其他情况下,为 O(N), N 为列表的长度。 返回值: 操作成功返回 ok ,否则返回错误信息。
func (*RedisHandleModel) Ltrim ¶
func (rd *RedisHandleModel) Ltrim(key string, start, stop int) (string, error)
LTRIM key start stop 对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。 举个例子,执行命令 LTRIM list 0 2 ,表示只保留列表 list 的前三个元素,其余元素全部删除。 下标(index)参数 start 和 stop 都以 0 为底,也就是说,以 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。 当 key 不是列表类型时,返回一个错误。 超出范围的下标 超出范围的下标值不会引起错误。 如果 start 下标比列表的最大下标 end ( LLEN list 减去 1 )还要大,或者 start > stop , LTRIM 返回一个空列表(因为 LTRIM 已经将整个列表清空)。 如果 stop 下标比 end 下标还要大,Redis将 stop 的值设置为 end 。 时间复杂度: O(N), N 为被移除的元素的数量。 返回值: 命令执行成功时,返回 ok 。
func (*RedisHandleModel) MGet ¶
func (rd *RedisHandleModel) MGet(keys ...interface{}) ([]string, error)
返回所有(一个或多个)给定 key 的值。 如果给定的 key 里面,有某个 key 不存在,那么这个 key 返回特殊值 nil 。因此,该命令永不失败。 返回值: 一个包含所有给定 key 的值的列表。
func (*RedisHandleModel) MSet ¶
func (rd *RedisHandleModel) MSet(keyvals ...interface{})
MSET key value [key value ...] 同时设置一个或多个 key-value 对。 返回值: 总是返回 OK (因为 MSET 不可能失败)
func (*RedisHandleModel) MsetNx ¶
func (rd *RedisHandleModel) MsetNx(keyvals ...interface{}) (int, error)
MSETNX key value [key value ...] 同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。 即使只有一个给定 key 已存在, MSETNX 也会拒绝执行所有给定 key 的设置操作。 MSETNX 是原子性的,因此它可以用作设置多个不同 key 表示不同字段(field)的唯一 性逻辑对象(unique logic object),所有字段要么全被设置,要么全不被设置。 返回值: 当所有 key 都成功设置,返回 1 。 如果所有给定 key 都设置失败(至少有一个 key 已经存在),那么返回 0 。
func (*RedisHandleModel) Multi ¶
func (rd *RedisHandleModel) Multi(f func()) error
func (*RedisHandleModel) Persist ¶
func (rd *RedisHandleModel) Persist(key string) (int, error)
PERSIST key 移除给定 key 的生存时间,将这个 key 从『易失的』(带生存时间 key )转换成『持久的』(一个不带生存时间、永不过期的 key )。 返回值: 当生存时间移除成功时,返回 1 . 如果 key 不存在或 key 没有设置生存时间,返回 0 。
func (*RedisHandleModel) Ping ¶
func (rd *RedisHandleModel) Ping() error
使用客户端向 Redis 服务器发送一个 PING ,如果服务器运作正常的话,会返回一个 PONG 。 返回 error==nil 就是成功的
func (*RedisHandleModel) RedisWatch ¶
func (rd *RedisHandleModel) RedisWatch(f func() error, keys ...interface{}) error
redis的事务模式
func (*RedisHandleModel) Rename ¶
func (rd *RedisHandleModel) Rename(key, newkey string) (string, error)
RENAME key newkey
将 key 改名为 newkey 。 当 key 和 newkey 相同,或者 key 不存在时,返回一个错误。 当 newkey 已经存在时, RENAME 命令将覆盖旧值。 返回值: 改名成功时提示 OK ,失败时候返回一个错误。
func (*RedisHandleModel) RenameNx ¶
func (rd *RedisHandleModel) RenameNx(key, newkey string) (int, error)
RENAMENX key newkey
当且仅当 newkey 不存在时,将 key 改名为 newkey 。 当 key 不存在时,返回一个错误。 返回值: 修改成功时,返回 1 。 如果 newkey 已经存在,返回 0 。
func (*RedisHandleModel) Rpop ¶
func (rd *RedisHandleModel) Rpop(key string) (string, error)
RPOP key 移除并返回列表 key 的尾元素。 返回值: 列表的尾元素。 当 key 不存在时,返回 nil 。
func (*RedisHandleModel) RpopLpush ¶
func (rd *RedisHandleModel) RpopLpush(source, dest string) (string, error)
RPOPLPUSH source destination 命令 RPOPLPUSH 在一个原子时间内,执行以下两个动作: 将列表 source 中的最后一个元素(尾元素)弹出,并返回给客户端。 将 source 弹出的元素插入到列表 destination ,作为 destination 列表的的头元素。 举个例子,你有两个列表 source 和 destination , source 列表有元素 a, b, c , destination 列表有元素 x, y, z , 执行 RPOPLPUSH source destination 之后, source 列表包含元素 a, b , destination 列表包含元素 c, x, y, z ,并且元素 c 会被返回给客户端。 如果 source 不存在,值 nil 被返回,并且不执行其他动作。 如果 source 和 destination 相同,则列表中的表尾元素被移动到表头,并返回该元素,可以把这种特殊情况视作列表的旋转(rotation)操作。 时间复杂度: O(1) 返回值: 被弹出的元素。
func (*RedisHandleModel) Rpush ¶
func (rd *RedisHandleModel) Rpush(key, val string) (int, error)
RPUSH key value [value ...] 将一个或多个值 value 插入到列表 key 的表尾(最右边)。 如果有多个 value 值,那么各个 value 值按从左到右的顺序依次插入到表尾:比如对一个空列表 mylist 执行 RPUSH mylist a b c , 得出的结果列表为 a b c ,等同于执行命令 RPUSH mylist a 、 RPUSH mylist b 、 RPUSH mylist c 。 如果 key 不存在,一个空列表会被创建并执行 RPUSH 操作。 当 key 存在但不是列表类型时,返回一个错误。 返回值: 执行 RPUSH 操作后,表的长度。
func (*RedisHandleModel) RpushX ¶
func (rd *RedisHandleModel) RpushX(key, val string) (int, error)
RPUSHX key value 将值 value 插入到列表 key 的表尾,当且仅当 key 存在并且是一个列表。 和 RPUSH 命令相反,当 key 不存在时, RPUSHX 命令什么也不做。 返回值: RPUSHX 命令执行之后,表的长度。
func (*RedisHandleModel) Rpushs ¶
func (rd *RedisHandleModel) Rpushs(key string, vals ...string) (int, error)
RPUSH key value [value ...] 将一个或多个值 value 插入到列表 key 的表尾(最右边)。 如果有多个 value 值,那么各个 value 值按从左到右的顺序依次插入到表尾:比如对一个空列表 mylist 执行 RPUSH mylist a b c , 得出的结果列表为 a b c ,等同于执行命令 RPUSH mylist a 、 RPUSH mylist b 、 RPUSH mylist c 。 如果 key 不存在,一个空列表会被创建并执行 RPUSH 操作。 当 key 存在但不是列表类型时,返回一个错误。 返回值: 执行 RPUSH 操作后,表的长度。
func (*RedisHandleModel) SScan ¶
func (rd *RedisHandleModel) SScan(key string, cursor int, match string, count int) (int, []string, error)
SSCAN key cursor [MATCH pattern] [COUNT count] 命令用于迭代集合键中的元素。
func (*RedisHandleModel) Sadd ¶
func (rd *RedisHandleModel) Sadd(key string, member string) (int, error)
SADD key member [member ...] 将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略。 假如 key 不存在,则创建一个只包含 member 元素作成员的集合。 当 key 不是集合类型时,返回一个错误。 时间复杂度: O(N), N 是被添加的元素的数量。 返回值: 被添加到集合中的新元素的数量,不包括被忽略的元素。
func (*RedisHandleModel) Sadds ¶
func (rd *RedisHandleModel) Sadds(key string, members ...string) (int, error)
同Sadd
func (*RedisHandleModel) Scan ¶
SCAN cursor [MATCH pattern] [COUNT count] cursor 0 MATCH "" count 10 SCAN 命令是一个基于游标的迭代器(cursor based iterator): SCAN 命令每次被调用之后, 都会向用户返回一个新的游标, 用户在下次迭代时需要使用这个新游标作为 SCAN 命令的游标参数, 以此来延续之前的迭代过程。 当 SCAN 命令的游标参数被设置为 0 时, 服务器将开始一次新的迭代, 而当服务器向用户返回值为 0 的游标时, 表示迭代已结束。 返回: 1) "17" 2) 1) "key:12"
- "key:8"
- "key:4"
- "key:14"
- "key:16"
- "key:17"
- "key:15"
- "key:10"
- "key:3"
- "key:7"
- "key:1"
func (*RedisHandleModel) Scard ¶
func (rd *RedisHandleModel) Scard(key string) (int, error)
SCARD key 返回集合 key 的基数(集合中元素的数量)。 返回值: 集合的基数。 当 key 不存在时,返回 0 。
func (*RedisHandleModel) Sdiff ¶
func (rd *RedisHandleModel) Sdiff(keys ...interface{}) ([]string, error)
SDIFF key [key ...] 返回一个集合的全部成员,该集合是所有给定集合之间的差集。 不存在的 key 被视为空集。 时间复杂度: O(N), N 是所有给定集合的成员数量之和。 返回值: 交集成员的列表。
func (*RedisHandleModel) SdiffStore ¶
func (rd *RedisHandleModel) SdiffStore(dest string, keys ...string) (int, error)
SDIFFSTORE destination key [key ...] 这个命令的作用和 SDIFF 类似,但它将结果保存到 destination 集合,而不是简单地返回结果集。 如果 destination 集合已经存在,则将其覆盖。 destination 可以是 key 本身。 时间复杂度: O(N), N 是所有给定集合的成员数量之和。 返回值: 结果集中的元素数量。
func (*RedisHandleModel) Select ¶
func (rd *RedisHandleModel) Select(index int) error
SELECT index 切换到指定的数据库,数据库索引号 index 用数字值指定,以 0 作为起始索引值。 默认使用 0 号数据库。 返回 error==nil 就是成功的
func (*RedisHandleModel) Set ¶
func (rd *RedisHandleModel) Set(key string, val string, ex int64, n RedisSetParam) (interface{}, error)
SET key value [EX seconds] [PX milliseconds] [NX|XX] EX second :设置键的过期时间为 second 秒。 SET key value EX second 效果等同于 SETEX key second value 。EX==-1表示不设置过期时间 PX millisecond :设置键的过期时间为 millisecond 毫秒。 SET key value PX millisecond 效果等同于 PSETEX key millisecond value 。(不使用) NX :只在键不存在时,才对键进行设置操作。 SET key value NX 效果等同于 SETNX key value 。 XX :只在键已经存在时,才对键进行设置操作。
func (*RedisHandleModel) SetBit ¶
func (rd *RedisHandleModel) SetBit(key string, offset, val int) (int, error)
对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)。 位的设置或清除取决于 value 参数,可以是 0 也可以是 1 。 当 key 不存在时,自动生成一个新的字符串值。 字符串会进行伸展(grown)以确保它可以将 value 保存在指定的偏移量上。当字符串值进行伸展时,空白位置以 0 填充。 offset 参数必须大于或等于 0 ,小于 2^32 (bit 映射被限制在 512 MB 之内)。 返回值: 指定偏移量原来储存的位数据
func (*RedisHandleModel) SetBytes ¶
func (rd *RedisHandleModel) SetBytes(key string, val []byte, ex int64, n RedisSetParam) (interface{}, error)
func (*RedisHandleModel) SetRange ¶
SETRANGE key offset value 用 value 参数覆写(overwrite)给定 key 所储存的字符串值,从偏移量 offset 开始。 不存在的 key 当作空白字符串处理。 SETRANGE 命令会确保字符串足够长以便将 value 设置在指定的偏移量上,如果给定 key 原来储存的字符串长度比偏移量小(比如字符串只有 5 个字符长,
但你设置的 offset 是 10 ),那么原字符和偏移量之间的空白将用零字节(zerobytes, "\x00" )来填充。
注意你能使用的最大偏移量是 2^29-1(536870911) ,因为 Redis 字符串的大小被限制在 512 兆(megabytes)以内。如果你需要使用比这更大的空间,你可以使用多个 key 。 当生成一个很长的字符串时,Redis 需要分配内存空间,该操作有时候可能会造成服务器阻塞(block)。 在2010年的Macbook Pro上,设置偏移量为 536870911(512MB 内存分配),耗费约 300 毫秒, 设置偏移量为 134217728(128MB 内存分配),耗费约 80 毫秒,设置偏移量 33554432(32MB 内存分配), 耗费约 30 毫秒,设置偏移量为 8388608(8MB 内存分配),耗费约 8 毫秒。 注意若首次内存分配成功之后,再对同一个 key 调用 SETRANGE 操作,无须再重新内存。 时间复杂度: 对小(small)的字符串,平摊复杂度O(1)。(关于什么字符串是”小”的,请参考 APPEND 命令) 否则为O(M), M 为 value 参数的长度。 返回值: 被 SETRANGE 修改之后,字符串的长度。
例: # 对空字符串/不存在的 key 进行 SETRANGE redis> EXISTS empty_string (integer) 0 redis> SETRANGE empty_string 5 "Redis!" # 对不存在的 key 使用 SETRANGE (integer) 11 redis> GET empty_string # 空白处被"\x00"填充 "\x00\x00\x00\x00\x00Redis!"
func (*RedisHandleModel) Sinter ¶
func (rd *RedisHandleModel) Sinter(keys ...interface{}) ([]string, error)
SINTER key [key ...] 返回一个集合的全部成员,该集合是所有给定集合的交集。 不存在的 key 被视为空集。 当给定集合当中有一个空集时,结果也为空集(根据集合运算定律)。 时间复杂度: O(N * M), N 为给定集合当中基数最小的集合, M 为给定集合的个数。 返回值: 交集成员的列表。
func (*RedisHandleModel) SinterStore ¶
func (rd *RedisHandleModel) SinterStore(dest string, keys ...string) (int, error)
SINTERSTORE destination key [key ...] 这个命令类似于 SINTER 命令,但它将结果保存到 destination 集合,而不是简单地返回结果集。 如果 destination 集合已经存在,则将其覆盖。 destination 可以是 key 本身。 时间复杂度: O(N * M), N 为给定集合当中基数最小的集合, M 为给定集合的个数。 返回值: 结果集中的成员数量。
func (*RedisHandleModel) Sismember ¶
func (rd *RedisHandleModel) Sismember(key, member string) (int, error)
SISMEMBER key member 判断 member 元素是否集合 key 的成员。 返回值: 如果 member 元素是集合的成员,返回 1 。 如果 member 元素不是集合的成员,或 key 不存在,返回 0 。
func (*RedisHandleModel) Smembers ¶
func (rd *RedisHandleModel) Smembers(key string) ([]string, error)
SMEMBERS key 返回集合 key 中的所有成员。 不存在的 key 被视为空集合。 时间复杂度: O(N), N 为集合的基数。 返回值: 集合中的所有成员。
func (*RedisHandleModel) Smove ¶
func (rd *RedisHandleModel) Smove(source, dest, member string) (int, error)
SMOVE source destination member 将 member 元素从 source 集合移动到 destination 集合。 SMOVE 是原子性操作。 如果 source 集合不存在或不包含指定的 member 元素,则 SMOVE 命令不执行任何操作,仅返回 0 。 否则, member 元素从 source 集合中被移除,并添加到 destination 集合中去。 当 destination 集合已经包含 member 元素时, SMOVE 命令只是简单地将 source 集合中的 member 元素删除。 当 source 或 destination 不是集合类型时,返回一个错误。 返回值: 如果 member 元素被成功移除,返回 1 。 如果 member 元素不是 source 集合的成员,并且没有任何操作对 destination 集合执行,那么返回 0 。
func (*RedisHandleModel) Spop ¶
func (rd *RedisHandleModel) Spop(key string) (string, error)
SPOP key 移除并返回集合中的一个随机元素。 如果只想获取一个随机元素,但不想该元素从集合中被移除的话,可以使用 SRANDMEMBER 命令。 返回值: 被移除的随机元素。 当 key 不存在或 key 是空集时,返回 nil 。
func (*RedisHandleModel) SrandMember ¶
func (rd *RedisHandleModel) SrandMember(key string, count int) ([]string, error)
SRANDMEMBER key [count] 如果命令执行时,只提供了 key 参数,那么返回集合中的一个随机元素。 从 Redis 2.6 版本开始, SRANDMEMBER 命令接受可选的 count 参数: 如果 count 为正数,且小于集合基数,那么命令返回一个包含 count 个元素的数组,数组中的元素各不相同。如果 count 大于等于集合基数,那么返回整个集合。 如果 count 为负数,那么命令返回一个数组,数组中的元素可能会重复出现多次,而数组的长度为 count 的绝对值。 时间复杂度: 只提供 key 参数时为 O(1) 。 如果提供了 count 参数,那么为 O(N) ,N 为返回数组的元素个数。 返回值: 只提供 key 参数时,返回一个元素;如果集合为空,返回 nil 。 如果提供了 count 参数,那么返回一个数组;如果集合为空,返回空数组。
func (*RedisHandleModel) Srem ¶
func (rd *RedisHandleModel) Srem(key string, members ...string) (int, error)
SREM key member [member ...] 移除集合 key 中的一个或多个 member 元素,不存在的 member 元素会被忽略。 当 key 不是集合类型,返回一个错误。 返回值: 被成功移除的元素的数量,不包括被忽略的元素。
func (*RedisHandleModel) StrLen ¶
func (rd *RedisHandleModel) StrLen(key string) (int, error)
STRLEN key 返回 key 所储存的字符串值的长度。 当 key 储存的不是字符串值时,返回一个错误。 返回值: 字符串值的长度。 当 key 不存在时,返回 0 。
func (*RedisHandleModel) Sunion ¶
func (rd *RedisHandleModel) Sunion(keys ...interface{}) ([]string, error)
SUNION key [key ...] 返回一个集合的全部成员,该集合是所有给定集合的并集。 不存在的 key 被视为空集。 时间复杂度: O(N), N 是所有给定集合的成员数量之和。 返回值: 并集成员的列表。
func (*RedisHandleModel) SunionStore ¶
func (rd *RedisHandleModel) SunionStore(dest string, keys ...string) (int, error)
SUNIONSTORE destination key [key ...] 这个命令类似于 SUNION 命令,但它将结果保存到 destination 集合,而不是简单地返回结果集。 如果 destination 已经存在,则将其覆盖。 destination 可以是 key 本身。 时间复杂度: O(N), N 是所有给定集合的成员数量之和。 返回值: 结果集中的元素数量。
func (*RedisHandleModel) TTL ¶
func (rd *RedisHandleModel) TTL(key string) (int, error)
TTL key 以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。 返回值: 当 key 不存在时,返回 -2 。 当 key 存在但没有设置剩余生存时间时,返回 -1 。 否则,以秒为单位,返回 key 的剩余生存时间。
func (*RedisHandleModel) Type ¶
func (rd *RedisHandleModel) Type(key string) (string, error)
TYPE key 返回 key 所储存的值的类型。 返回值: none (key不存在) string (字符串) list (列表) set (集合) zset (有序集) hash (哈希表)
func (*RedisHandleModel) ZScan ¶
func (rd *RedisHandleModel) ZScan(key string, cursor int, match string, count int) (int, []string, error)
ZSCAN key cursor [MATCH pattern] [COUNT count] 命令用于迭代有序集合中的元素(包括元素成员和元素分值)。
func (*RedisHandleModel) Zadd ¶
func (rd *RedisHandleModel) Zadd(key string, score interface{}, member string) (int, error)
ZADD key score member [[score member] [score member] ...] 将一个或多个 member 元素及其 score 值加入到有序集 key 当中。 如果某个 member 已经是有序集的成员,那么更新这个 member 的 score 值,并通过重新插入这个 member 元素,来保证该 member 在正确的位置上。 score 值可以是整数值或双精度浮点数。 如果 key 不存在,则创建一个空的有序集并执行 ZADD 操作。 当 key 存在但不是有序集类型时,返回一个错误。 对有序集的更多介绍请参见 sorted set 。 时间复杂度: O(M*log(N)), N 是有序集的基数, M 为成功添加的新成员的数量。 返回值: 被成功添加的新成员的数量,不包括那些被更新的、已经存在的成员。
func (*RedisHandleModel) Zadds ¶
func (rd *RedisHandleModel) Zadds(key string, li map[string]interface{}) (int, error)
看Zadd
func (*RedisHandleModel) Zcard ¶
func (rd *RedisHandleModel) Zcard(key string) (int, error)
ZCARD key 返回有序集 key 的基数。 返回值: 当 key 存在且是有序集类型时,返回有序集的基数。 当 key 不存在时,返回 0 。
func (*RedisHandleModel) Zcount ¶
func (rd *RedisHandleModel) Zcount(key string, min, max interface{}) (int, error)
ZCOUNT key min max 返回有序集 key 中, score 值在 min 和 max 之间(默认包括 score 值等于 min 或 max )的成员的数量。 区间及无限 min 和 max 可以是 -inf 和 +inf ,这样一来, 你就可以在不知道有序集的最低和最高 score 值的情况下,使用 ZRANGEBYSCORE 这类命令。 默认情况下,区间的取值使用闭区间 (小于等于或大于等于),你也可以通过给参数前增加 ( 符号来使用可选的开区间 (小于或大于)。 时间复杂度: O(log(N)+M), N 为有序集的基数, M 为值在 min 和 max 之间的元素的数量。 返回值: score 值在 min 和 max 之间的成员的数量。
func (*RedisHandleModel) Zincrby ¶
ZINCRBY key increment member 为有序集 key 的成员 member 的 score 值加上增量 increment 。 可以通过传递一个负数值 increment ,让 score 减去相应的值,比如 ZINCRBY key -5 member ,就是让 member 的 score 值减去 5 。 当 key 不存在,或 member 不是 key 的成员时, ZINCRBY key increment member 等同于 ZADD key increment member 。 当 key 不是有序集类型时,返回一个错误。 score 值可以是整数值或双精度浮点数。 时间复杂度: O(log(N)) 返回值: member 成员的新 score 值,以字符串形式表示。
func (*RedisHandleModel) Zrange ¶
func (rd *RedisHandleModel) Zrange(key string, start, stop int) ([]string, error)
ZRANGE key start stop [WITHSCORES] 返回有序集 key 中,指定区间内的成员。 其中成员的位置按 score 值递增(从小到大)来排序。 具有相同 score 值的成员按字典序(lexicographical order )来排列。 如果你需要成员按 score 值递减(从大到小)来排列,请使用 ZREVRANGE 命令。 下标参数 start 和 stop 都以 0 为底,也就是说,以 0 表示有序集第一个成员,以 1 表示有序集第二个成员,以此类推。 你也可以使用负数下标,以 -1 表示最后一个成员, -2 表示倒数第二个成员,以此类推。 超出范围的下标并不会引起错误。 比如说,当 start 的值比有序集的最大下标还要大,或是 start > stop 时, ZRANGE 命令只是简单地返回一个空列表。 另一方面,假如 stop 参数的值比有序集的最大下标还要大,那么 Redis 将 stop 当作最大下标来处理。 可以通过使用 WITHSCORES 选项,来让成员和它的 score 值一并返回,返回列表以 value1,score1, ..., valueN,scoreN 的格式表示。 客户端库可能会返回一些更复杂的数据类型,比如数组、元组等。 返回值: 指定区间内,成员列表。
func (*RedisHandleModel) ZrangeByScore ¶
func (rd *RedisHandleModel) ZrangeByScore(key string, min, max interface{}) ([]string, error)
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] 返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。 有序集成员按 score 值递增(从小到大)次序排列。 时间复杂度: O(log(N)+M), N 为有序集的基数, M 为被结果集的基数。 返回值: 指定区间内,带有 score 值(可选)的有序集成员的列表。 区间及无限 min 和 max 可以是 -inf 和 +inf ,这样一来,你就可以在不知道有序集的最低和最高 score 值的情况下,使用 ZRANGEBYSCORE 这类命令。 默认情况下,区间的取值使用闭区间 (小于等于或大于等于),你也可以通过给参数前增加 ( 符号来使用可选的开区间 (小于或大于)。 举个例子: ZRANGEBYSCORE zset (1 5 返回所有符合条件 1 < score <= 5 的成员,而 ZRANGEBYSCORE zset (5 (10 则返回所有符合条件 5 < score < 10 的成员。
func (*RedisHandleModel) ZrangeByScoreLimit ¶
func (rd *RedisHandleModel) ZrangeByScoreLimit(key string, min, max interface{}, offset, count int) ([]string, error)
看ZrangeByScore
func (*RedisHandleModel) ZrangeByScoreWithScore ¶
func (rd *RedisHandleModel) ZrangeByScoreWithScore(key string, min, max interface{}) (map[string]string, error)
看ZrangeByScore
func (*RedisHandleModel) ZrangeByScoreWithScoreLimit ¶
func (rd *RedisHandleModel) ZrangeByScoreWithScoreLimit(key string, min, max interface{}, offset, count int) (map[string]string, error)
看ZrangeByScore
func (*RedisHandleModel) ZrangeWithScores ¶
func (rd *RedisHandleModel) ZrangeWithScores(key string, start, stop int) (map[string]string, error)
看Zrange 返回值: 指定区间内,带有 score 值(可选)的有序集成员的列表。
func (*RedisHandleModel) ZrangeWithScoresByInt ¶
func (rd *RedisHandleModel) ZrangeWithScoresByInt(key string, start, stop int) (map[string]int, error)
看Zrange 返回值: 指定区间内,带有 score 值(可选)的有序集成员的列表。
func (*RedisHandleModel) Zrank ¶
func (rd *RedisHandleModel) Zrank(key, member string) (int, error)
ZRANK key member 返回有序集 key 中成员 member 的排名。其中有序集成员按 score 值递增(从小到大)顺序排列。 排名以 0 为底,也就是说, score 值最小的成员排名为 0 。 使用 ZREVRANK 命令可以获得成员按 score 值递减(从大到小)排列的排名。 时间复杂度: O(log(N)) 返回值: 如果 member 是有序集 key 的成员,返回 member 的排名。 如果 member 不是有序集 key 的成员,返回 nil 。
func (*RedisHandleModel) Zrem ¶
func (rd *RedisHandleModel) Zrem(key string, members ...string) (int, error)
ZREM key member [member ...] 移除有序集 key 中的一个或多个成员,不存在的成员将被忽略。 当 key 存在但不是有序集类型时,返回一个错误。 时间复杂度: O(M*log(N)), N 为有序集的基数, M 为被成功移除的成员的数量。 返回值: 被成功移除的成员的数量,不包括被忽略的成员。
func (*RedisHandleModel) ZremRangeByRank ¶
func (rd *RedisHandleModel) ZremRangeByRank(key string, start, stop int) (int, error)
ZREMRANGEBYRANK key start stop 移除有序集 key 中,指定排名(rank)区间内的所有成员。 区间分别以下标参数 start 和 stop 指出,包含 start 和 stop 在内。 下标参数 start 和 stop 都以 0 为底,也就是说,以 0 表示有序集第一个成员,以 1 表示有序集第二个成员,以此类推。 你也可以使用负数下标,以 -1 表示最后一个成员, -2 表示倒数第二个成员,以此类推。 时间复杂度: O(log(N)+M), N 为有序集的基数,而 M 为被移除成员的数量。 返回值: 被移除成员的数量。
func (*RedisHandleModel) ZremRangeByScore ¶
func (rd *RedisHandleModel) ZremRangeByScore(key string, min, max interface{}) (int, error)
ZREMRANGEBYSCORE key min max 移除有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。 自版本2.1.6开始, score 值等于 min 或 max 的成员也可以不包括在内,详情请参见 ZRANGEBYSCORE 命令。 时间复杂度: O(log(N)+M), N 为有序集的基数,而 M 为被移除成员的数量。 返回值: 被移除成员的数量。
func (*RedisHandleModel) ZrevRange ¶
func (rd *RedisHandleModel) ZrevRange(key string, start, stop int) ([]string, error)
ZREVRANGE key start stop [WITHSCORES] 返回有序集 key 中,指定区间内的成员。 其中成员的位置按 score 值递减(从大到小)来排列。 具有相同 score 值的成员按字典序的逆序(reverse lexicographical order)排列。 除了成员按 score 值递减的次序排列这一点外, ZREVRANGE 命令的其他方面和 ZRANGE 命令一样。 时间复杂度: O(log(N)+M), N 为有序集的基数,而 M 为结果集的基数。 返回值: 指定区间内,带有 score 值(可选)的有序集成员的列表。
func (*RedisHandleModel) ZrevRangeByScore ¶
func (rd *RedisHandleModel) ZrevRangeByScore(key string, min, max interface{}) ([]string, error)
ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count] 返回有序集 key 中, score 值介于 max 和 min 之间(默认包括等于 max 或 min )的所有的成员。有序集成员按 score 值递减(从大到小)的次序排列。 具有相同 score 值的成员按字典序的逆序(reverse lexicographical order )排列。 除了成员按 score 值递减的次序排列这一点外, ZREVRANGEBYSCORE 命令的其他方面和 ZRANGEBYSCORE 命令一样。 时间复杂度: O(log(N)+M), N 为有序集的基数, M 为结果集的基数。 返回值: 指定区间内,带有 score 值(可选)的有序集成员的列表。
func (*RedisHandleModel) ZrevRangeByScoreLimit ¶
func (rd *RedisHandleModel) ZrevRangeByScoreLimit(key string, min, max interface{}, offset, count int) ([]string, error)
看ZrevRangeByScore
func (*RedisHandleModel) ZrevRangeByScoreWithScore ¶
func (rd *RedisHandleModel) ZrevRangeByScoreWithScore(key string, min, max interface{}) (map[string]string, error)
看ZrevRangeByScore
func (*RedisHandleModel) ZrevRangeByScoreWithScoreLimit ¶
func (rd *RedisHandleModel) ZrevRangeByScoreWithScoreLimit(key string, min, max interface{}, offset, count int) (map[string]string, error)
看ZrevRangeByScore
func (*RedisHandleModel) ZrevRangeWithScores ¶
func (rd *RedisHandleModel) ZrevRangeWithScores(key string, start, stop int) (map[string]string, error)
看ZrevRange 返回值: 指定区间内,带有 score 值(可选)的有序集成员的列表。
func (*RedisHandleModel) ZrevRangeWithScoresByInt ¶
func (rd *RedisHandleModel) ZrevRangeWithScoresByInt(key string, start, stop int) (map[string]int, error)
看ZrevRange 返回值: 指定区间内,带有 score 值(可选)的有序集成员的列表。
func (*RedisHandleModel) ZrevRank ¶
func (rd *RedisHandleModel) ZrevRank(key, member string) (int, error)
ZREVRANK key member 返回有序集 key 中成员 member 的排名。其中有序集成员按 score 值递减(从大到小)排序。 排名以 0 为底,也就是说, score 值最大的成员排名为 0 。 使用 ZRANK 命令可以获得成员按 score 值递增(从小到大)排列的排名。 时间复杂度: O(log(N)) 返回值: 如果 member 是有序集 key 的成员,返回 member 的排名。 如果 member 不是有序集 key 的成员,返回 nil 。
type RedisListSite ¶
type RedisListSite string
type RedisSetParam ¶
type RedisSetParam int
Set的NX XX的参数
const ( Set_No_NX_XX RedisSetParam = iota //不使用模式 Set_NX //只在键不存在时,才对键进行设置操作 Set_XX //只在键已经存在时,才对键进行设置操作 )