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
应用场景
布隆过滤器
计数
权限
分布式锁
锁存储独立于业务服务的
如何设计
需求:<br>1.只有一个线程能同时执行互斥资源<br>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<br>buffer<br>selector
多路复用
poll
select
epoll
reactor模型
单线程
多线程
多线程多reactor
集群模式
主从
容灾备份
哨兵
故障转移
cluster 集群
数据分片
主从复制
0 条评论
下一页