高併發下收藏功能設計

最近公司要做個文章收藏功能,說說自己的想法

問題:

  1. 用戶可能頻繁點擊收藏按鈕(防止連點)
  2. 頻繁點擊(收藏,不收藏)按鈕
  3. 高併發下觸發
  4. 列表頁面顯示是否收藏

設計:

  1.  接口前添加限流方案,推薦通過用戶id限流。1秒可執行2條左右。然後客戶端顯示(收藏成功,收藏失敗)。防止用戶快速點擊
  2.  存儲記錄前用redis攔截一下。判斷是否收藏過具體做法
    1. 用redis的set結構,緩存key="cache:key:"+數據id
    2. 判斷是否收藏過用sismember方法。sismember(key,用戶id)
    3. 如果sismember返回的true,說明收藏過。然後去查詢該記錄,並刪除。反之新增
  3.  如果設計3想再快點。就可以在查詢數據庫的中間添加消息隊列等

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章