- 相关命令
命令 说明 subscribe 订阅一个或多个频道,会接收到这些频道发布的消息 unsubscribe 取消指定频道的订阅 psubscribe 功能同subscribe,但是会订阅符合某种模式的频道 punsubscribe 取消psubscribe订阅的频道 publish 向指定的频道发布消息 pubsub 查看活跃的频道信息(可以指定模式)<br />pubsub channels 查看所有频道信息<br />pubsub channel CCTV* 查看所有CCTV开头的频道信息 - 示例演示:
- 打开一个客户端,先订阅指定的频道
- 再打开一个客户端,向指定的频道发布消息
- 在订阅位置就会收到指定频道的消息
持久化存储
- RDB:Redis DataBase,默认是开启的
- 配置:
dbfilename dump.rdb # 保存数据的文件名 dir ./ # 数据文件的保存位置 save 900 1 # 更改一个键,900s后会保存 save 300 10 # 更改10个键,300s后会保存 save 60 10000 # 更改10000个键,60s后会保存
- 说明
- 当服务器关闭时会自动保存
- 使用
save
命令进行前台保存或者使用bgsave
命令进行后台保存 - 启动服务时数据会自动加载恢复至内存
- 关闭:
- 注释掉所有的
save
配置 - 添加配置
save ""
- 注释掉所有的
- 故障恢复:
redis-check-rdb
- AOF:Append Only File,将所有能够造成数据更改的命令保存到一个文件中,默认是关闭的
- 配置:
appendonly no # 启动开关,将no改为yes即可开启 appendfilename "appendonly.aof" # aof的文件名 appendfsync always|everysec|no # 文件同步频率,立即|每秒|从不(依赖OS)
- AOF文件自动重写配置:两个条件同时满足才会自动重写
auto-aof-rewrite-percentage 100 # 新命令占原文件的百分比 auto-aof-rewrite-min-size 64mb # 本次重写的最小数据量
- 手动重写:
bgrewriteaof
- 故障恢复:
redis-check-aof
RDB VS AOF
方案 优点 不足 RDB 数据安全可靠、体积小、恢复快 保存有间隔,数据不严谨 AOF 有较高的数据完整性 体积大,恢复慢,重写耗资源 - 同时开启RDB和AOF时恢复数据
- 问题:
只有
dump.rdb
文件,如果启动服务时同时开启了aof
,会优先从appendonly.aof
文件中恢复数据,若改文件不存在则新建一个空白文件,然后从改文件中恢复,恢复失败。 - 正确步骤:
redis
配置文件先关闭aof
:appendonly no
- 将
dumo.rdb
文件拷贝到指定目录dir
- 启动redis服务
- 通过命令开启AOF:
config set appendonly yes
,会立即进行aof持久化存储 - 关闭redis服务
- 修改配置文件:
appendonly yes
- 再次开启redis服务就行了
- 问题:
只有
代码操作Redis
- 安装扩展:
pip install redis
- 示例演示:
01-simple.py
:简单的连接,终端命令基本都变成了函数02-pool.py
:连接池,可以降低频繁的连接断开redis服务器的开销03-transaction.py
:事务处理,先记录命令然后一次性发送过去04-subscribe.py
、05-publish.py
:发布/订阅
关注公众号,免费刷快排。
转载请说明出处
奇点seo » redis 发布订阅和持久化存储
奇点seo » redis 发布订阅和持久化存储