博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Redis 原理(一):线程IO模型
阅读量:4290 次
发布时间:2019-05-27

本文共 508 字,大约阅读时间需要 1 分钟。

Redis 是个单线程程序!这点必须铭记。

正因为 Redis 是单线程,所以要小心使用 Redis 指令,对于那些时间复杂度为 O(n) 级别的指令,一定要谨慎使用,一不小心就可能会导致 Redis 卡顿。这里需要注意的是,redis对外的网络请求服务是单线程的,但是其内部其他模块还是多线程的操作。

Redis 单线程为什么还能这么快?

因为它所有的数据都在内存中,所有的运算都是内存级别的运算,内存结构的特点决定了它的高性能特点。

Redis 单线程如何处理那么多的并发客户端连接?

那为什么能处理那么多的高并发客户端连接?(qps 可以达到5w,Mysql qps可以达到2000)Redis是单线程的,多个链接过去还是单线程处理,但Redis的瓶颈并不在处理上,而是网络传输,连接池多个连接并发发送过去的请求可以大大加快网络通信的效率,再加上Redis使用Linux底层多路I/O复用模型,才是Redis高吞吐量的精髓所在。

Redis会将每个客户端关联到两个队列,指令队列和响应队列。客户端的指令会通过指令队列来顺序处理,先到的客户端指令先处理。Redis服务器通过响应队列来将指令的返回结果给到客户端。

 

转载地址:http://dnlgi.baihongyu.com/

你可能感兴趣的文章
RadioButton与CheckBox_优就业
查看>>
java中的throw与throws的区别
查看>>
js函数的传参是按值传对递
查看>>
优化用户登录体验效果
查看>>
用js批量选中功能实现更改数据库中status状态值_优就业
查看>>
JavaScript事件详解-zepto的事件实现(二)
查看>>
MySql表信息基础知识学习
查看>>
为什么document找到的不是html节点_优就业
查看>>
Javascript本地存储小结
查看>>
常用排序方法介绍
查看>>
Java异常分类和统一处理
查看>>
原 荐 cache线程池对数据库操作的饥饿问题
查看>>
使用Eclipse把java文件打包成jar 含有第三方jar库的jar包
查看>>
3种web会话管理的方式
查看>>
SSM(框架)-异常1:面向接口式编程异常
查看>>
Android蓝牙4.0之玩爆智能穿戴、家具(二)
查看>>
使用Condition实现多线程之间调用
查看>>
javaAPI之String
查看>>
JQ 新窗口打开链接并设置参数
查看>>
JQuery实现列表中复选框全选反选功能封装
查看>>