Redis 的速度为什么这么快

这里的速度快,Redis 的速度快是与 MySQL 等数据库相比较的,与直接操作内存数据相比,Redis 还是略有逊色。

Redis 是一个单线程模型,为什么比其他的多线程程序还要快,原因有以几点:

1、访问的对象不同

Redis 访问内存,而其他数据库是直接访问硬盘,操作内存数据一定比操作硬盘数据要来得更快。

2、Redis 的操作通常都是 "短平快"

所谓 "短平快",就是 Redis 的操作通常只是一些简单的操作,相比于其他数据库的复杂操作,Redis 的操作所消耗的资源更少,速度也是更快的。

3、Redis 是单线程模型

这里的单线程,不是 Redis 整个程序只有一个线程,而是只使用了一个线程来处理指令,在处理网络 IO 时使用的也是多线程。

使用单线程来处理指令,就能避免线程之间的竞争,从而就没有线程之间的竞争开销。

4、处理网络 IO 时,使用了IO多路复用的机制

上面说了,Redis 在处理网络请求时使用的是多线程模式,也就是一次能接收多个请求,但引入 IO多路复用(如 epoll 等机制)后,就能只使用较少的线程去处理多数的请求(前提是这些请求是不频繁的,线程大多数时间都在等)。

相关推荐
麻瓜code23 分钟前
双写一致性:为什么是“删缓存“,而不是“改缓存“
java·缓存·mybatis
码剑客31 分钟前
Gin+GORM+Redis 项目开发常见性能坑汇总(Go后端避坑指南)
redis·后端·golang·gin
瀚高PG实验室32 分钟前
HGHAC集群版本升级
数据库·postgresql·瀚高数据库
品牌常新1 小时前
室外巡检机器人推荐:园区与厂区怎么选
数据库·人工智能·机器人
snow@li1 小时前
redis:RedisDesktopManager(RDM/RESP.app)Redis 数据可视化全景深度梳理
数据库·redis·缓存
lqbzlll1 小时前
MySQL 慢查询日志开了但看不懂?从 slow_query_log 到 EXPLAIN ANALYZE 一步步定位
数据库·mysql·adb
code_slave(码畜)1 小时前
微服务架构落地:慢 SQL 治理与连接池调优 —— 守住数据库的最后一道防线
数据库·spring boot·sql·spring cloud·微服务·架构
海棠Flower未眠1 小时前
下单请求处理流程:商品维度分布式锁与 Redis 预扣库存
redis·分布式·junit
我不会起名字3221 小时前
Redis 从 0 到 1(二十一):P99 涨到 80ms,慢查询日志 5 步定位法 + Go 采集器
redis·go·慢查询·排查·slowlog
挖掘狂人1 小时前
Redis 为什么快?把 "存内存" 这句话拆开看
redis·后端·性能优化