Redis 知识点
描述
- 高性能 key-value 内存 数据结构 存储系统
- 作用:数据库、缓存、消息中间件
redis命令
数据结构
-
strings 字符串
- 格式: set key value
- string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。
- string类型是Redis最基本的数据类型,一个键最大能存储512MB。
-
hashes 散列
- 格式: hmset key field value1 field value2
- Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。
- Redis hash是一个键值(key=>value)对集合。
- key field value 灵活度高,
- 场景:购物车 key=cart:1000 field=P_1000 value=1,购物车自增hincrby 原子性自增
-
lists 列表: 按插入顺序排序的字符串元素的集合, 链表
- 格式: LPUSH/RPUSH key value
- Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(LPUSH)或者尾部(RPUSH)
- 场景:队列、堆栈、生产者消费者(堵塞操作, 减少操作)
- 模式:安全队列,lpush->brpoplpush 或者使用RocketMQ
-
sets 集合,string无序集合排列唯一,取交集并集差集,随机取
- 格式: SADD key value
-
sorted sets 有序合计
- 格式 ZADD key score value
- score: double类型
- bitmaps
-
hyperloglos
- 是用来做基数统计的算法
- 在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的。
- geo 地理位置
Pub/Sub
- 发布/订阅消息范式
- 发布:PUBLISH channel value
- 订阅:SUBSCRIBE channel1 channel2
- 取消:UNSUBSCROBE channel1 channel2
- 匹配订阅:PSUBSCRIBE channel1 channel2
- 匹配取消:PUNSUBSCROBE channel1 channel2
持久化
-
RDB: Redis Database
- 按照更新间隔周期,保存rdb数据文件
-
AOF: Append-only file
- 每当服务执行命令式,追到保存到aof文件中
-
对比
- aof更新频率更高,更加安全
- rdb性能好
- 同时启用,有限aof,数据安全完整
架构
- 单机
- 主从 Master/Slave
-
哨兵 Redis sentinel 分布式Master/Slave
- 官方文档
- 监控(Monitoring)
- 提醒(Notification)
- 自动故障迁移(Automatic failover)
-
集群 redis-cluster
未整理
-
replication 复制
- 主从复制
- LUA 脚本
- LUR驱动事件
- transactions 事务
-
persistence 持久化
- RBD:时间间隔,快照存储
- AOF:记录每次服务器的操作。
- 可同时开始,恢复时优先AOF
- cluster 分区
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。