哈喽大家好,我是影子,今天我们来聊一下Redis,为什么都说它是高性能的?我们只知道用它很快,但究竟是为啥呢?我来给大家用同粗移动的语言讲一下
其实有一下几个方面,存储、数据结构、线程模型、协议
接下来详细说说
1.内存存储架构
● 全内存操作避免磁盘 I/O 瓶颈
● 异步持久化机制(RDB/AOF)不阻塞主线程(关于RDB与AOF具体怎么做到不阻塞线程的,后边给大家更新~)
● 内存访问速度比磁盘快 5 个数量级(100ns vs 10ms)
2.高效数据结构
● 底层实现优化:
● SDS 动态字符串(预分配+惰性删除)
● 压缩列表(ziplist)节省内存
● 跳跃表(zskiplist)实现 O(logN) 查询
想了解更多数据结构相关的知识,可以点击看这篇文章
3. 单线程模型
● 避免上下文切换和锁竞争
● 基于事件循环的 Reactor 模式
● 顺序执行命令保证原子性
4.IO多路复用
● 使用 epoll/kqueue 实现
● 单线程处理 10 万级并发连接
● 典型吞吐量可达 10万 QPS
5.协议优化
● RESP 协议简单高效
● 批量命令减少网络开销(如 pipeline)
● 二进制安全的字节流处理
以上希望对找工作或者对此有一问的同学有所帮助,整理不易,给小女点个赞再走呗~

1403

被折叠的 条评论
为什么被折叠?



