Redis 常用操作笔记(Go 开发实战)

一、字符串(String)

Redis 的最基本数据类型,可以存储文本和数字。

bash 复制代码
# 设置 key-value
SET key value

# 获取值
GET key

# 设置带过期时间
SETEX key 10 value   # 10 秒后过期

# 追加字符串
APPEND key "append"

# 自增/自减
INCR counter        # +1
INCRBY counter 10   # +10
DECR counter        # -1
DECRBY counter 5    # -5

二、哈希(Hash)

哈希是键值对集合,类似 Go 中的 map 或对象。

bash 复制代码
# 设置字段
HSET user name "Tom" age 18

# 获取单个字段
HGET user name

# 获取所有字段和值
HGETALL user

# 获取所有字段
HKEYS user

# 获取所有值
HVALS user

# 删除字段
HDEL user age

# 判断字段是否存在
HEXISTS user name

三、列表(List)

有序集合,可以用作队列或栈。

bash 复制代码
# 左插入(栈)
LPUSH mylist "a" "b" "c"

# 右插入
RPUSH mylist "x" "y"

# 左弹出
LPOP mylist

# 右弹出
RPOP mylist

# 获取指定范围
LRANGE mylist 0 2    # 下标从 0 开始,包括结束下标

# 获取长度
LLEN mylist

# 删除指定元素
LREM mylist 1 "b"    # 删除 1 个值为 b 的元素

四、集合(Set)

无序且唯一的集合。

bash 复制代码
# 添加元素
SADD myset "a" "b" "c"

# 获取所有元素
SMEMBERS myset

# 删除元素
SREM myset "a"

# 判断元素是否存在
SISMEMBER myset "b"

# 集合运算
SUNION set1 set2     # 并集
SINTER set1 set2     # 交集
SDIFF set1 set2      # 差集

五、有序集合(Sorted Set,ZSet)

每个元素带分数(score),按分数排序。

bash 复制代码
# 添加元素
ZADD myzset 100 "Tom" 200 "Jerry"

# 获取范围
ZRANGE myzset 0 -1 WITHSCORES   # 从小到大

# 按分数获取
ZRANGEBYSCORE myzset 100 200

# 删除元素
ZREM myzset "Tom"

# 获取长度
ZCARD myzset

# 增加分数
ZINCRBY myzset 50 "Jerry"

六、键操作

bash 复制代码
# 删除 key
DEL key

# 检查 key 是否存在
EXISTS key

# 设置过期时间(秒)
EXPIRE key 10

# 查看剩余生存时间(秒)
TTL key

七、事务(Transaction)

bash 复制代码
MULTI
SET a 10
INCR a
EXEC

说明:

  • MULTI 开启事务
  • EXEC 执行事务
  • DISCARD 放弃事务
  • WATCH 监视 key,用于乐观锁

八、发布订阅(Pub/Sub)

bash 复制代码
# 订阅频道
SUBSCRIBE channel1

# 发布消息
PUBLISH channel1 "hello world"

# 取消订阅
UNSUBSCRIBE channel1

九、实用技巧

  1. 持久化
    • RDB(快照)
    • AOF(操作日志)
  2. 管道(Pipeline)
    • 批量命令,减少网络开销
  3. 常用命令
    • FLUSHDB:清空当前库
    • FLUSHALL:清空所有库
    • INFO:查看 Redis 状态

十、总结

Redis 常用操作包括:

  • 字符串 String
  • 哈希 Hash
  • 列表 List
  • 集合 Set
  • 有序集合 Sorted Set
  • 键操作与过期
  • 事务 Transaction
  • 发布订阅 Pub/Sub

掌握这些内容,可以应对绝大多数 Go 后端开发场景,例如缓存、排行榜、消息队列、队列任务等。

相关推荐
紧跟先前的步伐1 小时前
Go AI Agent 实战 06|JSON 结构化输出与 Go 后端校验
人工智能·ai·golang
果壳science7 小时前
张祥前实验如何获取正电荷
笔记·科技·嵌入式硬件·硬件工程·制造
夕除8 小时前
redis--数据类型 string list
redis
一条泥憨鱼8 小时前
【Redis | 黑马点评】分布式锁;Lua脚本;Redisson与看门狗 |源码万字详解
redis·分布式·lua
大叔学Linux8 小时前
FreeRTOS任务切换笔记
arm开发·笔记
stark张宇9 小时前
库存扣减的“锁”事:悲观锁、乐观锁、分布式锁
redis·分布式·mysql
职豚求职小程序刷题11 小时前
易方达基金2027秋招笔试|考什么+场次提醒
笔记
无锡银洲自动化11 小时前
煤粉测点频繁堵管?FD 防堵风压取样器现场调试小结
笔记·产品运营
ACP广源盛1392462567312 小时前
Type-C 扩展坞选型笔记:DP1.4a 转 HDMI2.0 桥接方案 GSV2201E @ACP评估
笔记·硬件架构·硬件工程·视频·hdmi·国产芯片
xian_wwq12 小时前
【学习笔记-一文读懂系列】读懂GBZ-195-2026《人工智能 工业智能体参考架构》
笔记·学习