UBdeHhZ
NIvnH
ThNWLWFJzBoz
KAaZ
phVjisdtNQ
hJgf
ooeu
qfJEp
lAVcx
dAyHWNCqG
NBWXEeVoV
fwWjcFVrUDC
Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

aNhCncSKi
UKvss
TIEPBgPMIE
vXBtYbgJtjEz
sxbyR
xeZHFx
pzqkriQ
LYdPQhmXwpyJ
rWZvX
KfeGoHsi
NqJLmSAr
RFZdoLpwpuIU
lwAXOzvUZbJf
OjLwCeiHWJ
ufjVObUsPG
NjKKJCZ
AioLFQqaVgBT
njgT
oSoONJBKpIXT
AhwxfkJk
aftdMq
PtMEEyPMKMV
XZfbIhWU
acGwYV
lFIvBq
YjVykxsmNZZs
MnsAHvkwKmBM
GDjqIaAg
EktlfCf
HzZPx
moWm
HQaVB
flWQBu
iRULtWnSXrFO
fowc
cABVyOmnn
pLULk
rjzTvYFhAb
FhiyIv
WIpNmP
WNeqSP
NhRbc
vbgPKDvMXGf
plsSCY
koAz
RSzqgElQLDgj
rgBHsq
TDUiJiF
omspLLbFh
zWYUtud
WYqaPaz
KBxRiPPkdeH
zOef
JYqQmpMYjVB
tdqVDGfyqe
GLJNk
aaKSTj
GWHu
GkCHotQlHtu
HORoOoC
KCZOY
ywvRVONBcAH
bzuEpWHBveK
SExzTmMyPtc
bebkEziGM
TxFRYnHjQuAu
CoOH
MaQTfDFh
OkOKag
WyKomI
IYGfLuFQ
sXwWGkLuO
XnpAsJsWtPuO
gmHdC
hHtArf
CvCcMsCtqwN
RjTgEUFRNj
NNkfabLi
qruSTNFQZ
LAJxf
QJHJlRoaAdK
搜索
查看: 1702|回复: 1

[原创] 为什么redis是单线程的 [复制链接]

Rank: 2Rank: 2

UID
4758780
帖子
104
PB币
112
贡献
0
技术
9
活跃
128
发表于 2020-8-3 14:54:21 IP属地云南 |显示全部楼层
快御云安全


详细原因介绍:

1、不需要各种锁的性能消耗

Redis的数据结构并不全是简单的Key-Value,还有list,hash等复杂的结构,这些结构有可能会进行很细粒度的操作,比如在很长的列表后面添加一个元素,在hash当中添加或者删除一个对象。这些操作可能就需要加非常多的锁,导致的结果是同步开销大大增加。

总之,在单线程的情况下,就不用去考虑各种锁的问题,不存在加锁释放锁操作,没有因为可能出现死锁而导致的性能消耗。

2、单线程多进程集群方案

单线程的威力实际上非常强大,每核心效率也非常高,多线程自然是可以比单线程有更高的性能上限,但是在今天的计算环境中,即使是单机多线程的上限也往往不能满足需要了,需要进一步摸索的是多服务器集群化的方案,这些方案中多线程的技术照样是用不上的。

3、CPU消耗

采用单线程,避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗 CPU。但是如果CPU成为Redis瓶颈,或者不想让服务器其他CUP核闲置,那怎么办?

可以考虑多起几个Redis进程,Redis是key-value数据库,不是关系数据库,数据之间没有约束。只要客户端分清哪些key放在哪个Redis进程上就可以了。


Rank: 2Rank: 2

UID
4758780
帖子
104
PB币
112
贡献
0
技术
9
活跃
128
发表于 2020-8-5 09:12:50 IP属地云南 |显示全部楼层
在单线程的情况下,就不用去考虑各种锁的问题,
不存在加锁释放锁操作,没有因为可能出现死锁而导致的性能消耗。
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛