知识点:

内存存储与磁盘存储的区别

2025-07-11T03:55:18.png

磁盘存储大小

2025-07-11T04:08:35.png

为什么使用Redis

Redis 是一款高性能的键值对内存数据库,其设计初衷和特性使其在众多场景中具备不可替代的优势。以下是其核心优点及 “为什么使用” 的原因:

  1. 极致的读写速度
    原理:数据主要存储在内存中(内存读写速度约为纳秒级),而磁盘数据库(如 MySQL)依赖磁盘 I/O(毫秒级),速度差距可达 10 万倍以上。
    场景:适用于需要高频读写的场景,例如:
    秒杀系统的库存实时扣减;
    高频访问的用户信息缓存(减少数据库压力);
    实时计数器(如文章阅读量、点赞数)。
    Redis 不仅支持简单的键值对,还提供了 5 种核心数据结构,并在此基础上扩展出更多功能,能直接满足复杂业务需求:

字符串(String):存储文本、数字(如验证码、用户 Token);
哈希(Hash):适合存储对象(如用户信息:user:1 {name: "xxx", age: 20});
列表(List):有序可重复,可实现消息队列、最新消息排行;
集合(Set):无序不可重复,可实现好友关系、去重;
有序集合(Sorted Set):带分数的集合,可实现排行榜(如游戏积分排名)。
额外扩展:Bitmap(位图,统计用户签到)、HyperLogLog(基数统计,如 UV 计数)等。

Redis 的持久化机制(本地保存数据)

Redis 有两种主要的持久化方式,可将内存数据保存到磁盘:

1. RDB(Redis Database)

原理:定时(如每隔 5 分钟)将内存中的数据生成二进制快照文件(默认 dump.rdb)
触发方式:
自动触发:通过配置文件设置save 900 1(900 秒内至少 1 个 key 变更则生成快照)
手动触发:执行SAVE或BGSAVE命令
优点:文件紧凑,适合备份和灾难恢复,恢复速度快
缺点:可能丢失最后一次快照后的数据(取决于配置的快照频率)

2. AOF(Append Only File)

原理:记录所有写操作命令(如 SET、INCR)到日志文件(默认 appendonly.aof)
配置选项:
plaintext
appendonly yes # 启用AOF
appendfsync always # 每次写操作都同步到磁盘(安全性最高,性能最低)
appendfsync everysec # 每秒同步一次(默认,平衡安全与性能)
appendfsync no # 由操作系统决定何时同步(性能最高,安全性最低)

优点:数据安全性高,可通过重写机制压缩 AOF 文件
缺点:AOF 文件通常比 RDB 大,恢复速度较慢

3. 混合持久化(Redis 4.0+)

原理:结合 RDB 和 AOF 的优点,在 AOF 重写时将 RDB 快照以二进制形式写入 AOF 文件
配置:
plaintext
aof-use-rdb-preamble yes # 启用混合持久化
优点:兼顾恢复速度和数据安全性

连接Redis redis-cli.ext -h 地址 -p 端口 -a 密码(没有不写-a 这段)