Golang 操作redis
我使用的是 https://github.com/go-redis/redis 这个 golang 客户端, 因此安装方式如下:
go get github.com/go-redis/redis/v8
接着在代码中导入此包即可:
"github.com/go-redis/redis/v8"
创建客户端
通过 redis.NewClient 函数即可创建一个 redis 客户端, 这个方法接收一个 redis.Options 对象参数, 通过这个参数, 我们可以配置 redis 相关的属性, 例如 redis 服务器地址, 数据库名, 数据库密码等.
下面是一个连接的例子:
func RedisClient1() *redis.Client{ var ctx = context.Background() rdb := redis.NewClient(&redis.Options{ Addr: "localhost:6379", Password: "", // no password set DB: 1, // use default DB }) _, err := rdb.Ping(ctx).Result() if err != nil { fmt.Println(err) } return rdb }
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) }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
2017-12-06 正则表达式