当前位置: 首页 > news >正文

go-reids

初始化客户端

package mainimport ("context""fmt""github.com/redis/go-redis/v9"
)var ctx = context.Background()func main() {rdb := redis.NewClient(&redis.Options{Addr:     "localhost:6379", // Redis 服务器地址Password: "",               // 没有密码则留空DB:       0,                // 使用默认数据库})// 测试连接pong, err := rdb.Ping(ctx).Result()if err != nil {fmt.Println("无法连接到 Redis:", err)return}fmt.Println("连接成功:", pong)
}

go-redis 常用命令用法

设置和获取值 Set Get

// 设置一个键值对
err := rdb.Set(ctx, "name", "Go-Redis", 0).Err()
if err != nil {fmt.Println("设置值失败:", err)return
}// 获取一个键值对
val, err := rdb.Get(ctx, "name").Result()
if err != nil {fmt.Println("获取值失败:", err)return
}
fmt.Println("name:", val)

哈希操作

// 设置哈希字段
err := rdb.HSet(ctx, "user:1000", "name", "John", "age", 30).Err()
if err != nil {fmt.Println("设置哈希字段失败:", err)return
}// 获取哈希字段
name, err := rdb.HGet(ctx, "user:1000", "name").Result()
if err != nil {fmt.Println("获取哈希字段失败:", err)return
}
fmt.Println("user:1000 name:", name)

列表操作

// 将值推入列表
err := rdb.LPush(ctx, "tasks", "task1", "task2").Err()
if err != nil {fmt.Println("推入列表失败:", err)return
}// 从列表弹出值
task, err := rdb.LPop(ctx, "tasks").Result()
if err != nil {fmt.Println("弹出列表值失败:", err)return
}
fmt.Println("task:", task)

集合操作

// 添加元素到集合
err := rdb.SAdd(ctx, "tags", "redis", "go", "database").Err()
if err != nil {fmt.Println("添加到集合失败:", err)return
}// 获取集合中的所有元素
tags, err := rdb.SMembers(ctx, "tags").Result()
if err != nil {fmt.Println("获取集合元素失败:", err)return
}
fmt.Println("tags:", tags)

有序集合操作

ZAdd ZRange

// 添加元素到有序集合
err := rdb.ZAdd(ctx, "scores", &redis.Z{Score: 100, Member: "Alice"}, &redis.Z{Score: 200, Member: "Bob"}).Err()
if err != nil {fmt.Println("添加到有序集合失败:", err)return
}// 获取有序集合中的元素
scores, err := rdb.ZRangeWithScores(ctx, "scores", 0, -1).Result()
if err != nil {fmt.Println("获取有序集合元素失败:", err)return
}
for _, z := range scores {fmt.Printf("%s: %f\n", z.Member, z.Score)
}
http://www.gsyq.cn/news/11153.html

相关文章:

  • WSL,适用于 Linux 的 Windows 子系统
  • 学财税大信息应用,需要考CPA/税务师吗?
  • APM v4.1.1 | 免费音乐听歌B站油管音乐播放器 - 指南
  • 安装与卸载JDK8
  • Linux zdb -C (zfs Debugger调试器)
  • 从零开始实现简易版Netty(八) MyNetty 实现Small规格的池化内存分配
  • 解题报告-字符串(str.*)
  • Linux 系统中的 /dev/disk/by-id/目录作用详解
  • 3.HTTP/HTTPS:报文格式、技巧、状态码、缓存、SSLTLS握手
  • keepalived服务器
  • 封神台复现
  • 李之一的Java第一作
  • 第三篇
  • 基于cloacked-pixel隐写工具爆破项目
  • redis 大 key 优化。哈罗面试:redis 有个大 key需要在线优化, 不能影响现有业务,请求不能大量到库,怎么优化?
  • ACL高可用架构。希音面试:第三方挂了,我们总在背锅。来一 靠谱的 高可用方案,让 外部依赖 稳如泰山
  • 【星海随笔】RabbitMQ开发篇 - 教程
  • Playwright MCP 服务器对比高层级的 MCP 服务器解决方案 - 详解
  • P13754 【MX-X17-T3】Distraction
  • 初学汇编
  • C++、Java 和 Python 在输入输出差别
  • 用 Java 和 Tesseract 进行验证码识别:基础实现与优化
  • 详细介绍:【2025PolarCTF秋季个人赛】WEB方向wp
  • 普通用户之间免密互信时因权限问题致使配置失败
  • 深入解析:[p2p-Magnet] docs | HTTP API与Web界面 | 搜索查询引擎
  • P10004 [集训队互测 2023] Permutation Counting 2
  • java数组拷贝主要有四种方法,浅拷贝
  • 毕赤酵母细胞工厂升级:CRISPR 技术破局传统局限,解锁多基因代谢工程新可能
  • 9月24号
  • linux系统下nginx网站ssl证书自动续签