Redis必学必会,一图概览
2024-01-18 11:24:29 3 举报
AI智能生成
Redis必备知识点
作者其他创作
大纲/内容
特性
快
基于内存
命令执行是单线程
Key-Value结构,类似hashmap,查询性能接近O(1)
底层的数据结构 跳表,压缩表,sds
网络模型:IO多路复用
AP模型
高可用
完善的内存管理机制:过期,淘汰,持久化
主从,哨兵,cluster集群
数据类型
Key最大512
String
应用场景
token
计数
分布式ID
点赞数,评论数
短信验证次数,库存
限流
SDS
Hash
应用场景
统计数据
购物车,实际不会这样做
List
应用场景
有序,时间线列表:朋友圈
阻塞消息队列
Set
无序,不重复,但如果全部是整型就是有序的
应用场景
抽奖
交集,并集,差集:共同好友
Sort Set
有序,不重复,如果score相同,根据key排序
应用场景
排行榜
bitmap
应用场景
布隆过滤器
计数
权限
分布式锁
锁存储独立于业务服务的
如何设计
需求:
1.只有一个线程能同时执行互斥资源
2.其他线程执行的时候,有线程在执行,要么等待,要么报错
1.只有一个线程能同时执行互斥资源
2.其他线程执行的时候,有线程在执行,要么等待,要么报错
有一个标识标记是否有线程在执行 比如lock中的state
这个标识必须可见,并可以获取最新结果
获取这个标识不能同时抢占成功,是安全的
怎么做分布式锁
标记--key-value结构
可见性--单线程操作
安全性--setnx原子性操作
事务
命令是原子性的,但不能获取中间指令的值来做后续的逻辑
lua脚本
必须要有宿主,redis支持lua脚本
redission
扩容
什么时候扩容
当没有子进程在做持久化的时候,ht[0].used>=ht[0].size的时候
如何扩容
渐进式rehash
IO
网络通信原理
通信模型
BIO
阻塞IO,连接组合和IO阻塞
应用场景
zk中leader选举
nacos注册地址信息同步
NIO
非阻塞IO
channel
buffer
selector
buffer
selector
多路复用
poll
select
epoll
reactor模型
单线程
多线程
多线程多reactor
集群模式
主从
容灾备份
哨兵
故障转移
cluster 集群
数据分片
主从复制
0 条评论
下一页