thinkphp3 redis實現併發處理

2021-09-26 23:24:21 字數 570 閱讀 3781

基本思路是所有操作用過redis的佇列和集合處理併發

1.使用者搶購佇列(list),user_list

2.商品佇列(list),goods_list

3.訂單資訊(hash集合),order_info

4.購買成功使用者(set集合),bought_list

ps:1和2用來控制併發,佇列的rpop是具有原子性的,即使處理併發,也是乙個個處理,不會出現重複和超賣的情況。

3則是用來暫時存放訂單資訊,之後再入庫。

4是為了防止使用者重複購買做的(set的特性是不能重複)。

併發模擬則是在linux的webbench做的。

經過試驗發現,併發1000條的搶購,直接運算元據庫要12秒,使用redis只要6秒,速度快了整整一倍!

下面貼原始碼

商品入貨1000個:

public function ruhuo()
秒殺介面:

public function redis_qianghuo()
就是這麼簡單,不僅高效,而且不會出現超賣情況,很實用的併發處理。

redis備份實操

終於發布了個人的第乙個課程 redis備份實操,位址 1 不能搞出問題 虛擬機器測試環境不擔心這個啊 2 任務得在夜間進行 白天業務高峰期,不適合做維護 3 必須考慮可用性,得把資料備份到其他的系統上。我的搞法是 1 準備乙個資料校驗環境,安裝上redis,用於備份檔案匯入。通過對比生產環境redi...

redis備份實操

終於發布了個人的第乙個課程 redis備份實操,位址 1 不能搞出問題 虛擬機器測試環境不擔心這個啊 2 任務得在夜間進行 白天業務高峰期,不適合做維護 3 必須考慮可用性,得把資料備份到其他的系統上。我的搞法是 1 準備乙個資料校驗環境,安裝上redis,用於備份檔案匯入。通過對比生產環境redi...

thinkphp快取直接操作redis

tp的快取,如果使用了redis,需要使用redis的高階操作,建議直接使用 handler 獲取到物件控制代碼,然後直接操作redis,例如下面的list列表,可以這麼寫 詳細的redis操作手冊,請參見 echo handler cache handler 一次性設定多個元素 handler r...