基本思路是所有操作用過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...