為什麼 Redis 如此快?
覺得我們的內容實用嗎? MyApollo 電子報讀者募集中!歡迎訂閱電子報!
沒看 ByteByteGo 的影片之前,我只知道 redis 憑藉著 in-memory database 的優勢,所以非常快,但不知道它原來是單執行緒⋯⋯。
簡單來說, redis 除了 in-memory database 的優勢之外,它還用了 I/O multiplexing 的技術,讓執行緒可以同時等待多個連線,等到某個連線可以讀寫資料時,再去執行相關工作,否則先去處理其他事務,也就是使用所謂的非阻塞 I/O (non-blocking I/0),最後則是使用有效率的資料結構儲存資料,其中就有面試比較高機率會問到的 HashTable, LinkedList 😆
(至於 SkipList 則是一個很有趣的演算法,有機會可以單獨寫一篇來聊聊XD)
以下片長只有 3 分鐘,蠻值得一看的: