Redis到底快在哪里?
极客时间编辑部
讲述:杜力大小:2.05M时长:02:15
Redis 是一种基于键值对(Key-Value)的 NoSQL 数据库,它提供了键过期、发布订阅、事务、Lua 脚本、哨兵、Cluster 等功能。Redis 执行命令的速度非常快,根据官方给的性能可以达到 10w+qps。本文主要介绍了 Redis 到底快在哪里,主要有以下几点:
1. 开发语言
现在我们都用高级语言来编程,比如 Java、python 等。也许你会觉得 C 语言很古老,但是它真的很有用,毕竟 unix 系统就是用 C 实现的,所以 C 语言是非常贴近操作系统的语言。Redis 就是用 C 语言开发的,所以执行会比较快。
2. 纯内存访问
Redis 将所有数据放在内存中,非数据同步正常工作时,是不需要从磁盘读取数据的,0 次 IO。内存响应时间大约为 100 纳秒,这是 Redis 速度快的重要基础。
3. 单线程
第一,单线程简化算法的实现,并发的数据结构实现不但困难而且测试也麻烦。第二,单线程避免了线程切换以及加锁释放锁带来的消耗,对于服务端开发来说,锁和线程切换通常是性能杀手。
当然,单线程也会有它的缺点,也是 Redis 的噩梦:阻塞。如果执行一个命令过长,那么会造成其他命令的阻塞,对于 Redis 是十分致命的,所以 Redis 是面向快速执行场景的数据库。
4. 非阻塞多路 I/O 复用机制
I/O 多路复用实际上是指多个连接的管理可以在同一进程。多路是指网络连接,复用只是同一个线程。在网络服务中,I/O 多路复用起的作用是一次性把多个连接的事件通知业务代码处理,处理的方式由业务代码来决定,该方法就会返回可读 / 写的 FD 个数。
Redis 使用 epoll 作为 I/O 多路复用技术的实现,再加上 Redis 自身的事件处理模型将 epoll 的 read、write、close 等都转换成事件,不在网络 I/O 上浪费过多的时间,从而实现对多个 FD 读写的监控,提高性能。
原文链接:搞懂 Redis 到底快在哪里
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(3)
- 最新
- 精选
- 田佳伟怎么没提到Redis的数据结构和算法的设计?2
- 不似旧日打卡, 简单基础。1
- 吴袁吉打卡归属地:北京
收起评论