1. 程式人生 > >高併發-【搶紅包案例】之四:使用Redis+Lua指令碼實現搶紅包並非同步持久化到資料庫

高併發-【搶紅包案例】之四:使用Redis+Lua指令碼實現搶紅包並非同步持久化到資料庫

文章目錄

導讀

在這裡插入圖片描述

概述

上面三篇博文是使用的MySql資料庫來作為資料的載體資料最終會將資料儲存到磁碟中,而Redis使用的是記憶體,記憶體的速度比磁碟速度肯定要快很多.

對於使用 Redis實現搶紅包,首先需要知道的是Redis的功能不如資料庫強大,事務也不是很完整.因此要保證資料的正確性資料的正確性可以通過嚴格的驗證得以保證。

而 Redis的 Lua 語言是原子性的,且功能更為強大,所以優先選擇使用Lua語言來實現搶紅包。

但是無論如何對於資料而言,在 Redis 當中儲存,始終都不是長久之計 , 因為 Redis並非一個長久儲存資料的地方,更多的時候只是為了提供更為快速的快取,所以當紅包金額為 0 或者紅包超時的時候(超時操作可以使用定時機制實,這裡暫不討論), 會將紅包資料儲存到資料庫中, 這樣才能夠保證資料的安全性和嚴格性。

所以本篇博文我們將使用Redis + lua指令碼來實現搶紅包的功能。