Redis 常用操作笔记(Go 开发实战)
一、字符串(String)
Redis 的最基本数据类型,可以存储文本和数字。
# 设置 key-valueSET key value# 获取值GET key# 设置带过期时间SETEX key10value# 10 秒后过期# 追加字符串APPEND key"append"# 自增/自减INCR counter# +1INCRBY counter10# +10DECR counter# -1DECRBY counter5# -5二、哈希(Hash)
哈希是键值对集合,类似 Go 中的 map 或对象。
# 设置字段HSET user name"Tom"age18# 获取单个字段HGET user name# 获取所有字段和值HGETALL user# 获取所有字段HKEYS user# 获取所有值HVALS user# 删除字段HDEL user age# 判断字段是否存在HEXISTS user name三、列表(List)
有序集合,可以用作队列或栈。
# 左插入(栈)LPUSH mylist"a""b""c"# 右插入RPUSH mylist"x""y"# 左弹出LPOP mylist# 右弹出RPOP mylist# 获取指定范围LRANGE mylist02# 下标从 0 开始,包括结束下标# 获取长度LLEN mylist# 删除指定元素LREM mylist1"b"# 删除 1 个值为 b 的元素四、集合(Set)
无序且唯一的集合。
# 添加元素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),按分数排序。
# 添加元素ZADD myzset100"Tom"200"Jerry"# 获取范围ZRANGE myzset0-1WITHSCORES# 从小到大# 按分数获取ZRANGEBYSCORE myzset100200# 删除元素ZREM myzset"Tom"# 获取长度ZCARD myzset# 增加分数ZINCRBY myzset50"Jerry"六、键操作
# 删除 keyDEL key# 检查 key 是否存在EXISTS key# 设置过期时间(秒)EXPIRE key10# 查看剩余生存时间(秒)TTL key七、事务(Transaction)
MULTI SET a10INCR a EXEC说明:
MULTI开启事务EXEC执行事务DISCARD放弃事务WATCH监视 key,用于乐观锁
八、发布订阅(Pub/Sub)
# 订阅频道SUBSCRIBE channel1# 发布消息PUBLISH channel1"hello world"# 取消订阅UNSUBSCRIBE channel1九、实用技巧
- 持久化
- RDB(快照)
- AOF(操作日志)
- 管道(Pipeline)
- 批量命令,减少网络开销
- 常用命令
FLUSHDB:清空当前库FLUSHALL:清空所有库INFO:查看 Redis 状态
十、总结
Redis 常用操作包括:
- 字符串 String
- 哈希 Hash
- 列表 List
- 集合 Set
- 有序集合 Sorted Set
- 键操作与过期
- 事务 Transaction
- 发布订阅 Pub/Sub
掌握这些内容,可以应对绝大多数 Go 后端开发场景,例如缓存、排行榜、消息队列、队列任务等。
