試圖掌握Redis的一些基礎知識我遇到了一篇有趣的博客文章。作者說:Redis是帶有epoll / kqueue的單線程,并且在I / O并發(fā)方面無限縮放。我肯定誤解了整個線程,因為我發(fā)現(xiàn)這個說法令人費解。如果程序是單線程的,它如何同時執(zhí)行任何操作?如果服務器是單線程的話,為什么Redis操作是原子的呢?有人可以就這個問題說清楚嗎?
2 回答

鳳凰求蠱
TA貢獻1825條經(jīng)驗 獲得超4個贊
好的,Redis是用戶級別的單線程OTOH,內(nèi)核線程池和/或分層驅(qū)動程序支持所有異步I / O.
對于某些人來說,“ 并發(fā) ”包括將網(wǎng)絡事件分發(fā)到套接字狀態(tài)機。它是單線程的,在一個核心上運行(在用戶級別),因此我不會將其稱為并發(fā)。其他人不同..
“ 在I / O并發(fā)性方面無限擴展 ”只是對事實是經(jīng)濟的。他們可能會更加相信,如果他們說'可以比每個客戶一個線程更好地擴展,只要客戶不要求太多',盡管他們可能會覺得有必要添加'被其他異步解決方案重載在用戶級使用所有核心'。
添加回答
舉報
0/150
提交
取消