redis

package
v0.2.11 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 15, 2021 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Init added in v0.1.6

func Init(conf *gjson.Result) error

[

{"name": "redis1", "host": "127.0.0.1", "port": 11211, "password": "secret", "db": 0},
{"name": "redis2", "host": "127.0.0.1", "port": 11212, "password": "secret", "db": 0}

]

在框架初始化时调用

Types

type GeoOptions

type GeoOptions struct {
	WithCoord bool
	WithDist  bool
	WithHash  bool
	Order     string // ASC从近到远,DESC从远到近
	Count     int
}

GeoOptions 用于GEORADIUS和GEORADIUSBYMEMBER命令的参数

type GeoResult

type GeoResult struct {
	Name      string
	Longitude float64
	Latitude  float64
	Dist      float64
	Hash      int64
}

GeoResult 用于GEORADIUS和GEORADIUSBYMEMBER命令的查询结果

type Redis

type Redis struct {
	// contains filtered or unexported fields
}

func NewRedis

func NewRedis(name string, pool *redigo.Pool) *Redis

func RedisPool added in v0.1.6

func RedisPool(name string) (*Redis, error)

获取redis连接

func (*Redis) BLPop

func (r *Redis) BLPop(key string, timeout int) (interface{}, error)

BLPop 它是 LPOP 命令的阻塞版本,当给定列表内没有任何元素可供弹出的时候,连接将被 BLPOP 命令阻塞,直到等待超时或发现可弹出元素为止。 超时参数 timeout 接受一个以秒为单位的数字作为值。超时参数设为 0 表示阻塞时间可以无限期延长(block indefinitely) 。

func (*Redis) BLPopBool

func (r *Redis) BLPopBool(key string, timeout int) (bool, error)

BLPopBool BLPop的工具方法,元素类型为bool时

func (*Redis) BLPopInt

func (r *Redis) BLPopInt(key string, timeout int) (int, error)

BLPopInt BLPop的工具方法,元素类型为int时

func (*Redis) BLPopInt64

func (r *Redis) BLPopInt64(key string, timeout int) (int64, error)

BLPopInt64 BLPop的工具方法,元素类型为int64时

func (*Redis) BLPopObject

func (r *Redis) BLPopObject(key string, timeout int, val interface{}) error

BLPopObject BLPop的工具方法,元素类型为object时

func (*Redis) BLPopString

func (r *Redis) BLPopString(key string, timeout int) (string, error)

BLPopString BLPop的工具方法,元素类型为string时

func (*Redis) BRPop

func (r *Redis) BRPop(key string, timeout int) (interface{}, error)

BRPop 它是 RPOP 命令的阻塞版本,当给定列表内没有任何元素可供弹出的时候,连接将被 BRPOP 命令阻塞,直到等待超时或发现可弹出元素为止。 超时参数 timeout 接受一个以秒为单位的数字作为值。超时参数设为 0 表示阻塞时间可以无限期延长(block indefinitely) 。

func (*Redis) BRPopBool

func (r *Redis) BRPopBool(key string, timeout int) (bool, error)

BRPopBool BRPop的工具方法,元素类型为bool时

func (*Redis) BRPopInt

func (r *Redis) BRPopInt(key string, timeout int) (int, error)

BRPopInt BRPop的工具方法,元素类型为int时

func (*Redis) BRPopInt64

func (r *Redis) BRPopInt64(key string, timeout int) (int64, error)

BRPopInt64 BRPop的工具方法,元素类型为int64时

func (*Redis) BRPopObject

func (r *Redis) BRPopObject(key string, timeout int, val interface{}) error

BRPopObject BRPop的工具方法,元素类型为object时

func (*Redis) BRPopString

func (r *Redis) BRPopString(key string, timeout int) (string, error)

BRPopString BRPop的工具方法,元素类型为string时

func (*Redis) Bool

func (r *Redis) Bool(reply interface{}, err error) (bool, error)

Bool is a helper that converts a command reply to a boolean

func (*Redis) Decr

func (r *Redis) Decr(key string) (val int64, err error)

Decr 将 key 中储存的数字值减一。

func (*Redis) DecrBy

func (r *Redis) DecrBy(key string, amount int64) (val int64, err error)

DecrBy key 所储存的值减去给定的减量值(decrement)。

func (*Redis) Del

func (r *Redis) Del(key string) error

Del 删除键

func (*Redis) Do

func (r *Redis) Do(commandName string, args ...interface{}) (reply interface{}, err error)

Do 执行redis命令并返回结果。执行时从连接池获取连接并在执行完命令后关闭连接。

func (*Redis) Exists

func (r *Redis) Exists(key string) (bool, error)

Exists 检查键是否存在

func (*Redis) Expire

func (r *Redis) Expire(key string, expire int64) error

Expire 设置键过期时间,expire的单位为秒

func (*Redis) Float64

func (r *Redis) Float64(reply interface{}, err error) (float64, error)

Float64 is a helper that converts a command reply to 64 bit float

func (*Redis) Flush

func (r *Redis) Flush() error

Flush 清空当前数据库中的所有 key,慎用!

func (*Redis) GeoAdd

func (r *Redis) GeoAdd(key string, longitude, latitude float64, member string) error

GeoAdd 将给定的空间元素(纬度、经度、名字)添加到指定的键里面,这些数据会以有序集合的形式被储存在键里面,所以删除可以使用`ZREM`。

func (*Redis) GeoDist

func (r *Redis) GeoDist(key string, member1, member2, unit string) (float64, error)

GeoDist 返回两个给定位置之间的距离。 如果两个位置之间的其中一个不存在, 那么命令返回空值。 指定单位的参数 unit 必须是以下单位的其中一个: m 表示单位为米。 km 表示单位为千米。 mi 表示单位为英里。 ft 表示单位为英尺。 如果用户没有显式地指定单位参数, 那么 GEODIST 默认使用米作为单位。

func (*Redis) GeoHash

func (r *Redis) GeoHash(key string, members ...interface{}) ([]string, error)

GeoHash 返回一个或多个位置元素的 Geohash 表示。

func (*Redis) GeoPos

func (r *Redis) GeoPos(key string, members ...interface{}) ([]*[2]float64, error)

GeoPos 从键里面返回所有给定位置元素的位置(经度和纬度)。

func (*Redis) GeoRadius

func (r *Redis) GeoRadius(key string, longitude, latitude, radius float64, unit string, options GeoOptions) ([]*GeoResult, error)

GeoRadius 以给定的经纬度为中心, 返回键包含的位置元素当中, 与中心的距离不超过给定最大距离的所有位置元素。

func (*Redis) GeoRadiusByMember

func (r *Redis) GeoRadiusByMember(key string, member string, radius float64, unit string, options GeoOptions) ([]*GeoResult, error)

GeoRadiusByMember 这个命令和 GEORADIUS 命令一样, 都可以找出位于指定范围内的元素, 但是 GEORADIUSBYMEMBER 的中心点是由给定的位置元素决定的, 而不是像 GEORADIUS 那样, 使用输入的经度和纬度来决定中心点。

func (*Redis) Get

func (r *Redis) Get(key string) (interface{}, error)

Get 获取键值。一般不直接使用该值,而是配合下面的工具类方法获取具体类型的值,或者直接使用github.com/gomodule/redigo/redis包的工具方法。

func (*Redis) GetBool

func (r *Redis) GetBool(key string) (bool, error)

GetBool 获取bool类型的键值

func (*Redis) GetInt

func (r *Redis) GetInt(key string) (int, error)

GetInt 获取int类型的键值

func (*Redis) GetInt64

func (r *Redis) GetInt64(key string) (int64, error)

GetInt64 获取int64类型的键值

func (*Redis) GetObject

func (r *Redis) GetObject(key string, val interface{}) error

GetObject 获取非基本类型stuct的键值。在实现上,使用json的Marshal和Unmarshal做序列化存取。

func (*Redis) GetString

func (r *Redis) GetString(key string) (string, error)

GetString 获取string类型的键值

func (*Redis) HGet

func (r *Redis) HGet(key, field string) (reply interface{}, err error)

HGet 获取存储在哈希表中指定字段的值 Example:

```golang val, err := r.HGet("user", "age") ```

func (*Redis) HGetAll

func (r *Redis) HGetAll(key string, val interface{}) error

HGetAll HGetAll("key", &val)

func (*Redis) HGetBool

func (r *Redis) HGetBool(key, field string) (reply bool, err error)

HGetBool HGet的工具方法,当字段值为bool类型时使用

func (*Redis) HGetInt

func (r *Redis) HGetInt(key, field string) (reply int, err error)

HGetInt HGet的工具方法,当字段值为int类型时使用

func (*Redis) HGetInt64

func (r *Redis) HGetInt64(key, field string) (reply int64, err error)

HGetInt64 HGet的工具方法,当字段值为int64类型时使用

func (*Redis) HGetObject

func (r *Redis) HGetObject(key, field string, val interface{}) error

HGetObject HGet的工具方法,当字段值为非基本类型的stuct时使用

func (*Redis) HGetString

func (r *Redis) HGetString(key, field string) (reply string, err error)

HGetString HGet的工具方法,当字段值为字符串类型时使用

func (*Redis) HMSet

func (r *Redis) HMSet(key string, val interface{}, expire int) (err error)

HMSet 将一个map存到Redis hash,同时设置有效期,单位:秒 Example:

```golang m := make(map[string]interface{}) m["name"] = "corel" m["age"] = 23 err := r.HMSet("user", m, 10) ```

func (*Redis) HSet

func (r *Redis) HSet(key, field string, val interface{}) (interface{}, error)

HSet 将哈希表 key 中的字段 field 的值设为 val Example:

```golang _, err := r.HSet("user", "age", 23) ```

func (*Redis) Incr

func (r *Redis) Incr(key string) (val int64, err error)

Incr 将 key 中储存的数字值增一

func (*Redis) IncrBy

func (r *Redis) IncrBy(key string, amount int64) (val int64, err error)

IncrBy 将 key 所储存的值加上给定的增量值(increment)。

func (*Redis) Int

func (r *Redis) Int(reply interface{}, err error) (int, error)

Int is a helper that converts a command reply to an integer

func (*Redis) Int64

func (r *Redis) Int64(reply interface{}, err error) (int64, error)

Int64 is a helper that converts a command reply to 64 bit integer

func (*Redis) LLen

func (r *Redis) LLen(key string) (int64, error)

LLen 获取列表的长度

func (*Redis) LPop

func (r *Redis) LPop(key string) (interface{}, error)

LPop 移出并获取列表中的第一个元素(表头,左边)

func (*Redis) LPopBool

func (r *Redis) LPopBool(key string) (bool, error)

LPopBool 移出并获取列表中的第一个元素(表头,左边),元素类型为bool

func (*Redis) LPopInt

func (r *Redis) LPopInt(key string) (int, error)

LPopInt 移出并获取列表中的第一个元素(表头,左边),元素类型为int

func (*Redis) LPopInt64

func (r *Redis) LPopInt64(key string) (int64, error)

LPopInt64 移出并获取列表中的第一个元素(表头,左边),元素类型为int64

func (*Redis) LPopObject

func (r *Redis) LPopObject(key string, val interface{}) error

LPopObject 移出并获取列表中的第一个元素(表头,左边),元素类型为非基本类型的struct

func (*Redis) LPopString

func (r *Redis) LPopString(key string) (string, error)

LPopString 移出并获取列表中的第一个元素(表头,左边),元素类型为string

func (*Redis) LPush

func (r *Redis) LPush(key string, member interface{}) error

LPush 将一个值插入到列表头部

func (*Redis) LREM

func (r *Redis) LREM(key string, count int, member interface{}) (int, error)

LREM 根据参数 count 的值,移除列表中与参数 member 相等的元素。 count 的值可以是以下几种: count > 0 : 从表头开始向表尾搜索,移除与 member 相等的元素,数量为 count 。 count < 0 : 从表尾开始向表头搜索,移除与 member 相等的元素,数量为 count 的绝对值。 count = 0 : 移除表中所有与 member 相等的值。 返回值:被移除元素的数量。

func (*Redis) LRange

func (r *Redis) LRange(key string, start, end int) (interface{}, error)

LRange 返回列表 key 中指定区间内的元素,区间以偏移量 start 和 stop 指定。 下标(index)参数 start 和 stop 都以 0 为底,也就是说,以 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。 和编程语言区间函数的区别:end 下标也在 LRANGE 命令的取值范围之内(闭区间)。

func (*Redis) Publish

func (r *Redis) Publish(channel, message string) (int, error)

Publish 将信息发送到指定的频道,返回接收到信息的订阅者数量

func (*Redis) RPop

func (r *Redis) RPop(key string) (interface{}, error)

RPop 移出并获取列表中的最后一个元素(表尾,右边)

func (*Redis) RPopBool

func (r *Redis) RPopBool(key string) (bool, error)

RPopBool 移出并获取列表中的最后一个元素(表尾,右边),元素类型为bool

func (*Redis) RPopInt

func (r *Redis) RPopInt(key string) (int, error)

RPopInt 移出并获取列表中的最后一个元素(表尾,右边),元素类型为int

func (*Redis) RPopInt64

func (r *Redis) RPopInt64(key string) (int64, error)

RPopInt64 移出并获取列表中的最后一个元素(表尾,右边),元素类型为int64

func (*Redis) RPopObject

func (r *Redis) RPopObject(key string, val interface{}) error

RPopObject 移出并获取列表中的最后一个元素(表尾,右边),元素类型为非基本类型的struct

func (*Redis) RPopString

func (r *Redis) RPopString(key string) (string, error)

RPopString 移出并获取列表中的最后一个元素(表尾,右边),元素类型为string

func (*Redis) RPush

func (r *Redis) RPush(key string, member interface{}) error

RPush 将一个值插入到列表尾部

func (*Redis) Set

func (r *Redis) Set(key string, val interface{}, expire int64) error

Set 存并设置有效时长。时长的单位为秒。 基础类型直接保存,其他用json.Marshal后转成string保存。

func (*Redis) String

func (r *Redis) String(reply interface{}, err error) (string, error)

String is a helper that converts a command reply to a string

func (*Redis) Strings

func (r *Redis) Strings(reply interface{}, err error) ([]string, error)

Strings is a helper that converts an array command reply to a []string

func (*Redis) Subscribe

func (r *Redis) Subscribe(onMessage func(channel string, data []byte) error, channels ...string) error

Subscribe 订阅给定的一个或多个频道的信息。 支持redis服务停止或网络异常等情况时,自动重新订阅。 一般的程序都是启动后开启一些固定channel的订阅,也不会动态的取消订阅,这种场景下可以使用本方法。 复杂场景的使用可以直接参考 https://godoc.org/github.com/gomodule/redigo/redis#hdr-Publish_and_Subscribe

func (*Redis) TTL

func (r *Redis) TTL(key string) (ttl int64, err error)

TTL 以秒为单位。当 key 不存在时,返回 -2 。 当 key 存在但没有设置剩余生存时间时,返回 -1

func (*Redis) ZAdd

func (r *Redis) ZAdd(key string, score int64, member string) (reply interface{}, err error)

ZAdd 将一个 member 元素及其 score 值加入到有序集 key 当中。

func (*Redis) ZRange

func (r *Redis) ZRange(key string, from, to int64) (map[string]int64, error)

ZRange 返回有序集中,指定区间内的成员。其中成员的位置按分数值递增(从小到大)来排序。具有相同分数值的成员按字典序(lexicographical order )来排列。 以 0 表示有序集第一个成员,以 1 表示有序集第二个成员,以此类推。或 以 -1 表示最后一个成员, -2 表示倒数第二个成员,以此类推。

func (*Redis) ZRangeByScore

func (r *Redis) ZRangeByScore(key string, from, to, offset int64, count int) (map[string]int64, error)

ZRangeByScore 返回有序集合中指定分数区间的成员列表。有序集成员按分数值递增(从小到大)次序排列。 具有相同分数值的成员按字典序来排列

func (*Redis) ZRank

func (r *Redis) ZRank(key, member string) (int64, error)

ZRank 返回有序集中指定成员的排名。其中有序集成员按分数值递增(从小到大)顺序排列。score 值最小的成员排名为 0

func (*Redis) ZRem

func (r *Redis) ZRem(key string, member string) (reply interface{}, err error)

ZRem 移除有序集 key 中的一个成员,不存在的成员将被忽略。

func (*Redis) ZRevrange

func (r *Redis) ZRevrange(key string, from, to int64) (map[string]int64, error)

ZRevrange 返回有序集中,指定区间内的成员。其中成员的位置按分数值递减(从大到小)来排列。具有相同分数值的成员按字典序(lexicographical order )来排列。 以 0 表示有序集第一个成员,以 1 表示有序集第二个成员,以此类推。或 以 -1 表示最后一个成员, -2 表示倒数第二个成员,以此类推。

func (*Redis) ZRevrangeByScore

func (r *Redis) ZRevrangeByScore(key string, from, to, offset int64, count int) (map[string]int64, error)

ZRevrangeByScore 返回有序集中指定分数区间内的所有的成员。有序集成员按分数值递减(从大到小)的次序排列。 具有相同分数值的成员按字典序来排列

func (*Redis) ZRevrank

func (r *Redis) ZRevrank(key, member string) (int64, error)

ZRevrank 返回有序集中成员的排名。其中有序集成员按分数值递减(从大到小)排序。分数值最大的成员排名为 0 。

func (*Redis) ZScore

func (r *Redis) ZScore(key string, member string) (int64, error)

ZScore 返回有序集 key 中,成员 member 的 score 值。 如果 member 元素不是有序集 key 的成员,或 key 不存在,返回 nil 。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL