Redis5学习笔记之四:高级特性(持久化、订阅、主从复制、缓存穿透和雪崩)
# 持久化
Redis提供了两种持久化方式:RDB(默认)和AOF。
## RDB
**触发机制**:
- 手动:`SAVE` 和 `BGSAVE`
- 自动:在`redis.conf`中配置自动保存条件
**RDB文件**:
- 默认文件名为 `dump.rdb`
- 可以通过配置文件修改文件名和路径
## AOF
**开启AOF**:
appendonly yes
**触发机制**:
- 每次写操作后自动追加到AOF文件
- 手动:`BGREWRITEAOF`
**AOF重写**:
- 解决AOF文件体积过大的问题
# 订阅与发布
**订阅**:
SUBSCRIBE channel1 [channel2 ...]
**发布**:
PUBLISH channel message
**示例**:
```python
# 订阅者
sub_client = redis.StrictRedis()
sub_client.subscribe('news')
for message in sub_client.listen():
print(message)
# 发布者
pub_client = redis.StrictRedis()
pub_client.publish('news', 'Hello, World!')
主从复制
配置:
- 在从服务器的
redis.conf
中添加slaveof
指令
命令:
SLAVEOF host port
注意:
- 一个从服务器可以有多个从服务器
- 主从复制不会阻塞主服务器
缓存穿透和雪崩
缓存穿透:
- 大量请求查询不存在的键
- 解决:缓存空对象或使用布隆过滤器
缓存雪崩:
- 缓存集体失效
解决:
- 不同的过期时间
- 使用分布式锁或锁分段技术
- 监控和预警,及时刷新缓存
以上代码提供了持久化、订阅与发布、主从复制的基本概念和配置方法,同时提到了缓存穿透和雪崩问题以及它们的解决方案。这些是Redis学习中的高级特性,对于构建高性能、高可用的分布式系统非常重要。
评论已关闭