1. 发布订阅
1.1 命令
订阅频道
SUBCRIBE CHANNEL [CHANNEL|...]订阅给定的一个或多个频道的信息。
PSUBSCRIBE PATTERN [PATTERN ,,,]订阅一个或多个给定模式的频道。
发布频道
PUBLISH CHANNEL MESSAGE 将信息发送到指定的频道。
退订频道
UNSUBSCRIBE [CHANNEL | ...] 指退订给定的频道。
PUNSUBSCRIBE [PATTERN [PATTERN ...]] 退订所有给定模式的频道。
应用场景
这一功能最明显的用法就是构建实时消息系统,比如普通的即时聊天,群聊等功能。
- 在一个博客网站中,有100个粉丝订阅了你,当你发布新文章,就可以推送消息给他们。
- 微信公众号模式。
2. 多数据库
select 数据库 //数据库切换
move key 名称 数据库 //移动数据库
flushdb //清理当前数据库的所有key
flushall //清理整个Redis的数据库所有key
3. Redis事务
Redis事务可以一次执行多个命令,按顺序的串行化执行,执行中不会被其他命令插入,不许加塞。
- Redis会将一个事务中的所有命令序列化,然后按顺序执行。
- 执行中不会被其他命令插入,不许出现加塞行为。
3.1 事务命令
- DISCARD 取消事务,放弃执行事务块内的所有命令。
- EXEC 执行所有事务块内的命令。
- MULTI 标记一个事务块的开始。
- UNWATCH 取消WATCH命令对所有key的监视。
- WATCH key [key ...] 监视一个或多个key,如果在事务执行之前这个或这些key被其他命令所改动,那么事务将被打断。
3.2 应用场景
一组命令必须同时都执行,或者都不执行。
我们想要保证一组命令在执行的过程中不被其他命令插入。
商品秒杀(活动)
转账
4. Redis 脚本
5. Redis数据淘汰策略redis.conf
- 最大缓存配置
如:maxmemory 512G
redis提供6种数据淘汰策略
6. Redis持久化
6.1 简介
6.2 RDB(dump.rdb)
- 优点:
快照保存数据极快,还原数据极快。
是用于灾难备份。
- 缺点:
小内存机器不适合使用,RDB机制符合要求就会照快照。
6.3 AOF
7. redis缓存于数据库一致性
7.1 解决方案
- 实时同步
- 异步队列
- 使用阿里的同步工具canal
- 采用UDF自定义函数的方式