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

相关推荐
Rsingstarzengjx1 小时前
【stm32】尚硅谷基础篇笔记
笔记·stm32·嵌入式硬件
JP-Destiny1 小时前
docker-安装redis
java·redis·docker
AOwhisky1 小时前
Ceph系列第五期:Ceph 对象存储(RADOS Gateway)精讲
linux·运维·笔记·ceph·gateway·对象存储
凉、介1 小时前
深入理解 ARMv8-A|异常/中断处理
笔记·学习·嵌入式·arm
東隅已逝,桑榆非晚1 小时前
新手入门指南:认识 C 语言文件操作(下)
c语言·笔记
小杍随笔1 小时前
【Rust后端缓存设计实战:从本地moka到Redis多层架构的避坑指南】
redis·缓存·rust
Jul1en_1 小时前
【Redis】 集群概念
数据库·redis·哈希算法
飞翔中文网1 小时前
Java学习笔记之泛型
java·笔记·学习
我是一颗柠檬1 小时前
【Redis】有序集合与位图Day5(2026年)
数据库·redis·后端·缓存