没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
Golang redis 学习指南
安装
我使用的是 https://github.com/go-redis/r... 这个 golang 客户端, 因此安装方式如
下:
go get gopkg.in/redis.v4
接着在代码中导入此包即可:
import "gopkg.in/redis.v4"
基本操作
创建客户端
通过 redis.NewClient 函数即可创建一个 redis 客户端, 这个方法接收一个 redis.Options
对象参数, 通过这个参数, 我们可以配置 redis 相关的属性, 例如 redis 服务器地址, 数据
库名, 数据库密码等.
下面是一个连接的例子:
// 创建 redis 客户端
func createClient() *redis.Client {
client := redis.NewClient(&redis.Options{
Addr: "localhost:6379",
Password: "",
DB: 0,
})
// 通过 cient.Ping() 来检查是否成功连接到了 redis 服务器
pong, err := client.Ping().Result()
fmt.Println(pong, err)
return client
}
String 操作
redis 的 String 操作有:
set(key, value):给数据库中名称为 key 的 string 赋予值 value
get(key):返回数据库中名称为 key 的 string 的 value
getset(key, value):给名称为 key 的 string 赋予上一次的 value
mget(key1, key2,…, key N):返回库中多个 string 的 value
setnx(key, value):添加 string,名称为 key,值为 value
setex(key, time, value):向库中添加 string,设定过期时间 time
mset(key N, value N):批量设置多个 string 的值
msetnx(key N, value N):如果所有名称为 key i 的 string 都不存在
incr(key):名称为 key 的 string 增 1 操作
incrby(key, integer):名称为 key 的 string 增加 integer
decr(key):名称为 key 的 string 减 1 操作
decrby(key, integer):名称为 key 的 string 减少 integer
append(key, value):名称为 key 的 string 的值附加 value
substr(key, start, end):返回名称为 key 的 string 的 value 的子串
在 go-redis 中, 我们可以直接找到对应的操作方法, 直接上代码:
// String 操作
func stringOperation(client *redis.Client) {
// 第三个参数是过期时间, 如果是 0, 则表示没有过期时间.
err := client.Set("name", "xys", 0).Err()
if err != nil {
panic(err)
}
val, err := client.Get("name").Result()
if err != nil {
panic(err)
}
fmt.Println("name", val)
// 这里设置过期时间.
err = client.Set("age", "20", 1 * time.Second).Err()
if err != nil {
panic(err)
}
client.Incr("age") // 自增
client.Incr("age") // 自增
client.Decr("age") // 自减
val, err = client.Get("age").Result()
if err != nil {
panic(err)
}
fmt.Println("age", val) // age 的值为 21
// 因为 key "age" 的过期时间是一秒钟, 因此当一秒后, 此 key 会自动被
删除了.
time.Sleep(1 * time.Second)
val, err = client.Get("age").Result()
if err != nil {
// 因为 key "age" 已经过期了, 因此会有一个 redis: nil 的错误.
fmt.Printf("error: %v\n", err)
}
fmt.Println("age", val)
}
list 操作
redis 的 list 操作有:
rpush(key, value):在名称为 key 的 list 尾添加一个值为 value 的元素
lpush(key, value):在名称为 key 的 list 头添加一个值为 value 的元素
llen(key):返回名称为 key 的 list 的长度
lrange(key, start, end):返回名称为 key 的 list 中 start 至 end 之间的
元素
ltrim(key, start, end):截取名称为 key 的 list
lindex(key, index):返回名称为 key 的 list 中 index 位置的元素
lset(key, index, value):给名称为 key 的 list 中 index 位置的元素赋值
lrem(key, count, value):删除 count 个 key 的 list 中值为 value 的元素
lpop(key):返回并删除名称为 key 的 list 中的首元素
rpop(key):返回并删除名称为 key 的 list 中的尾元素
blpop(key1, key2,… key N, timeout):lpop 命令的 block 版本。
brpop(key1, key2,… key N, timeout):rpop 的 block 版本。
rpoplpush(srckey, dstkey):返回并删除名称为 srckey 的 list 的尾元素,
并将该元素添加到名称为 dstkey 的 list 的头部
同样地, 在 go-redis 中也可以找到对应的方法, 下面是一个简单的示例:
// list 操作
func listOperation(client *redis.Client) {
client.RPush("fruit", "apple") //在名称为 fruit 的 list 尾添加一
个值为 value 的元素
剩余17页未读,继续阅读
资源评论
小小哭包
- 粉丝: 1904
- 资源: 3909
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功