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 后端开发场景,例如缓存、排行榜、消息队列、队列任务等。

相关推荐
ShineWinsu1 小时前
对于Redis:string类型的解析
java·c++·redis·分布式·缓存·面试·string
有范先生1 小时前
这次户外断粮危机后,我更在意主食能不能扛住极端环境了
笔记
喜欢打篮球的普通人2 小时前
MiniMind 学习笔记(十二):Pretrain 实操——从版本梳理到 8GB 显卡上的真实训练
人工智能·笔记·学习
CoLiuRs4 小时前
电商价格是怎样算出来的
数据库·redis·缓存
坤坤子吖4 小时前
算法学习——高精度加减乘除
c++·笔记·学习·算法
Answer1st5 小时前
【HAL库】嵌入式思路(一)
笔记
AOI小白新手上路5 小时前
深度学习模块缝合方法论 · 人物蒸馏笔记
人工智能·笔记·深度学习
AOI小白新手上路5 小时前
韦东山 3-5 I.MX6ULL 的 LED 编程 · 学习笔记
arm开发·笔记·单片机·学习·架构·硬件架构
M78佐菲6 小时前
ARM学习笔记(9)
linux·arm开发·笔记·嵌入式硬件·学习
念何架构之路6 小时前
go-grpc服务端调用
开发语言·后端·golang