iT邦幫忙

2025 iThome 鐵人賽

DAY 6
0

Lua 是獨立的,它不依附 Redis 也活得好好的,也可以開發有的沒的應用。

但為何Redis對它這麼好?

因為它很輕。

原子性。一即全,全即一。不會被打斷,不會有人打擾,資源不會被搶佔,沒有競態問題,且 redis 不會 rollback。

Redis 是用 C 語言寫的,但有內嵌 Lua 解釋器(嵌入式引擎)。為何是 Lua,因為輕量,記憶體佔用少,啟動速度很快,且支援確定性(相同狀態下結果一定一致)對 Redis 主從複製的特性很重要。

Redis底層開放了API專門給它用,特殊待遇。可以再 Redis Server 直接執行 Lua 程式碼,這些程式碼會在 Redis 的 Lua 解釋器中運行。

但他不負眾望。

沒人想要跑來跑去,一次能做好,為何分兩次?所以我發一次腳本,Redis Server 執行整個 Lua 腳本後,一次返回結果。

像SQL一樣,能一次算好就一次吧。

讓 Redis 的實例做一點 CPU 運算也沒差啊。減少網路傳輸的開銷可以讓系統更穩定一點。


上一篇
010 IO 密集&交易管理
系列文
軟體工程師的湖濱散記11
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言