Redis 学习笔记

Redis 启动方式

先启动 Redis 服务端:

bash 复制代码
redis-server

再启动 Redis 客户端:

bash 复制代码
redis-cli

一、基础字符串(String)操作

字符串是 Redis 中最基础、最常用的数据类型。

常用命令

  1. set:设置键值

    bash 复制代码
    set name rose
  2. get:获取键值

    bash 复制代码
    get name
    # rose
  3. del:删除 key

    bash 复制代码
    del name
  4. exists:判断 key 是否存在

    bash 复制代码
    exists name
    # 0 表示不存在,1 表示存在
  5. keys:查找 key(支持通配符)

    bash 复制代码
    keys *
    keys *me   # 查找所有以 me 结尾的 key
  6. flushall:清空所有 key(⚠️慎用)

    bash 复制代码
    flushall
  7. ttl:查看 key 的过期时间

    bash 复制代码
    ttl key
    # -1:未设置过期时间
    # -2:key 已过期
  8. expire:设置过期时间(单位:秒)

    bash 复制代码
    expire key 10
  9. setex:设置键值并指定过期时间

    bash 复制代码
    setex name 10 rose
  10. setnx:key 不存在时才设置

    bash 复制代码
    setnx name rose

二、List 操作(类似数组)

List 是一个有序、可重复的列表结构。

常用命令

  1. rpush:从尾部插入

    bash 复制代码
    rpush arr 1 2 3
  2. lpush:从头部插入

    bash 复制代码
    lpush arr 4
  3. lrange:获取指定范围内的元素

    bash 复制代码
    lrange arr 0 -1
  4. lpop / rpop:弹出头部 / 尾部元素

    bash 复制代码
    lpop arr
    rpop arr

    批量删除:

    bash 复制代码
    lpop arr 2
  5. llen:查看长度

    bash 复制代码
    llen arr
  6. ltrim:修剪列表

    bash 复制代码
    ltrim arr 2 5

三、Set 操作(无序且不可重复)

类似于 JavaScript 中的 Set。

常用命令

  1. sadd:添加元素

    bash 复制代码
    sadd aset 1 2 3 1
  2. srem:移除元素

    bash 复制代码
    srem aset 1
  3. smembers:查看所有成员

    bash 复制代码
    smembers aset
  4. sismember:判断元素是否存在

    bash 复制代码
    sismember aset 4

Set 支持交集、并集、差集等集合运算,常用于标签、去重等场景。


四、有序集合 SortedSet(ZSet)

每个元素由 member + score 组成,按 score 排序。

常用命令

  1. zadd:添加元素

    bash 复制代码
    zadd result 1 rose 2 jack 3 andy
  2. zrange:按 score 正序获取

    bash 复制代码
    zrange result 0 -1
  3. zrange withscores:同时获取 score

    bash 复制代码
    zrange result 0 -1 withscores
  4. zscore:查看某个成员的分数

    bash 复制代码
    zscore result andy
  5. zrank:查看排名(正序)

    bash 复制代码
    zrank result rose
  6. zrevrank:查看排名(逆序)

    bash 复制代码
    zrevrank result andy
  7. zrem:移除成员

    bash 复制代码
    zrem result jack

中文显示问题说明

默认 redis-cli 模式下 get 中文会乱码,可使用:

bash 复制代码
redis-cli --raw

五、Hash(哈希,对象结构)

可以理解为一个对象,适合存储结构化数据。

常用命令

bash 复制代码
hset person name rose
hget person name
hgetall person
hdel person name
hexists person name
hkeys person
hlen person

六、发布订阅(Pub/Sub)

缺点:不支持消息持久化、无法消费历史消息。

示例

bash 复制代码
# 订阅
subscribe ch1

# 发布
publish ch1 lele

七、Stream(消息队列,Pub/Sub 进阶)

Stream 是 Redis 用于解决消息可靠性问题的方案。

常用命令

bash 复制代码
xadd s1 * course js
xlen s1
xrange s1 - +
xdel s1 1766314632833-0
xtrim s1 maxlen 0

读取消息

bash 复制代码
xread count 2 block 1000 streams s1 0

消费者组

bash 复制代码
xgroup create s1 group1 0
xinfo groups s1
xgroup createconsumer s1 group1 consumer1
xreadgroup group group1 consumer1 count 2 block 1000 streams s1 >

八、地理空间(Geospatial)

用于位置、距离计算。

bash 复制代码
geoadd city 121 31 beijing
geopos city shanghai
geodist city beijing shanghai
geosearch city frommember shanghai byradius 2000 km

九、HyperLogLog(基数统计)

用于统计去重后的数量,占用极小内存,但存在一定误差。

bash 复制代码
pfadd course go js java
pfcount course
pfmerge result course course1

十、位图(Bitmap)

适合点赞、签到等二进制场景。

bash 复制代码
setbit dianzan 0 1
getbit dianzan 0

批量设置:

bash 复制代码
set dianzan "\x0f"

统计:

bash 复制代码
bitcount dianzan
bitpos dianzan 0

十一、事务(Transaction)

Redis 事务不保证原子回滚,但能保证顺序执行。

bash 复制代码
multi
set k1 v1
lpush arr1 1 2 3
exec

十二、Redis 持久化机制

RDB

  • 定期将内存数据快照写入磁盘

AOF

  • 将每一条写命令追加到日志文件中

两者均可在 redis.conf 中配置。


十三、主从复制

  • 一个主节点(Master)
  • 多个从节点(Slave)
  • 数据只能 主 → 从

配置完成后自动同步数据。


十四、哨兵模式(Sentinel)

无哨兵的问题

  • 主节点宕机需要人工介入

哨兵的作用

  • 独立进程监控 Redis 集群
  • 主节点宕机后自动选举新主节点
  • 自动通知并切换从节点指向

相关推荐
qq_284274055 小时前
机械设计基础·滚动轴承全解(类型·代号·选型·寿命)+轮系与蜗杆蜗轮传动
笔记·学习·自动化·制造
ACP广源盛1392462567310 小时前
硬件选型笔记:国产 PCIe Gen2.1 交换芯片 IX6024@ACP,工控与存量设备国产化改造方案评估
笔记·硬件架构·硬件工程·pcie·国产芯片
2603_9651481111 小时前
社区与学习资源:从入门到精通的API选品学习路径
数据库·人工智能·python·学习·数据挖掘
文人sec11 小时前
SQL基础入门笔记 | 从零基础到掌握核心查询语句
数据库·笔记·sql
摇滚侠13 小时前
《计算机是如何工作的:人人都能懂的计算机软硬件工作原理》第 9 章 机器码与汇编语言 阅读笔记 9
java·开发语言·笔记
kaixin_啊啊13 小时前
【用于更准确 G×E 基因组预测的大规模作物数据集与基于深度学习的多模态融合框架】论文学习
人工智能·深度学习·学习
xier_ran13 小时前
【infra之路】AI 编译器学习笔记(六):重拾 C++——lambda 与 MLIR 中的回调
c++·笔记·学习
志尊宝13 小时前
Vue3 零基础每日笔记(078):首屏加载速度优化汇总——清单化方案
笔记
别动我齐刘海15 小时前
Linux 系统调试学习2
linux·运维·c++·人工智能·学习·机器学习·机器人
m4Rk_15 小时前
【论文阅读】Agent 记忆机制(99):PrisMem——从整体分数搜索走向能力驱动的记忆自进化
论文阅读·人工智能·学习·开源·github