第1个回答 2019-10-26
Redis是个单线程程序!这点必须铭记。
也许你会怀疑高并发的Redis 中间件怎么可能是单线程。很抱歉,它就是单线程,你的怀疑暴露了你基础知识的不足。莫要瞧不起单线程,除了Redis 之外,Node.js 也是单线程,Nginx也是单线程,但是它们都是服务器高性能的典范。
Redis单线程为什么还能这么快?
因为它所有的数据都在内存中,所有的运算都是内存级别的运算。正因为Redis是单线程,所以要小心使用Redis 指令,对于那些时间复杂度为O(n) 级别的指令,- -定要谨慎使用,一不小心就可能会导致Redis 卡顿。
Redis单线程如何处理那么多的并发客户端连接?
这个问题,有很多中高级程序员都无法回答,因为他们没听过多路复用这个词汇,不知
道select 系列的事件轮询API, 没用过非阻塞IO。
非阻塞IO
第2个回答 2018-04-18
redis是以单进程的形式运行的,命令是一个接着一个执行的,能很好的解决程序的并发问题
所以在当数据涉及并发问题 比如秒杀 我们就是把数据线存进redis 然后用户请求的时候在redis中减库存redis是单线程所以不会减超 redis减成功了之后就拒绝之后的请求然后在数据库减库存 这样就不会出现库存为负的问题 这就是基本的运作原理本回答被网友采纳
第3个回答 2019-11-08
部署redis集群啊 一个redis服务每秒读10万条数据(官网说的,应该是理想环境,自己测其实就2/3/4万左右),你每秒处理100万条数据,那你就部署redis集群啊,每个redis每秒处理3万,那你就需要部署100/3个redis服务,也就是多开100/3个端口。