redis作為一款性能優異的內存數據庫,在互聯網公司有著多種應用場景,本文介紹筆者在項目中使用redis的場景。
主要從以下幾個方面介紹:
分布式鎖 ? ? ? ? ? ? (推薦學習:Redis視頻教程)
接口限流器
訂單緩存
Redis和DB數據一致性處理
防止緩存穿透和雪崩
分布式Session共享
訂單緩存
整個訂單的存儲結構如下:
使用Redis的zset數據結構存儲每個用戶的訂單,按照下單時間倒序排列,用戶唯一標識作為key,用戶的訂單集合作為value,使用訂單創建時間的時間戳+訂單號后三位作為分數
為什么不直接使用下單時間的時間戳作為分數?因為下單時間只精確到秒,同一秒可能出現多個訂單情況,這樣就會出現相同的分數,而加上訂單號后三位就能基本上避免這種情景。
只放用戶的前N條訂單即可,因為很少有用戶會查看很久以前的訂單,這樣做會節省很多空間。如果有用戶需要查看前N條之后的訂單,再從數據庫中查詢即可,當然這種概率就比較小了。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END