Redis常見使用場景
阿新 • • 發佈:2021-07-31
- 快取
- 資料共享分散式
- 分散式鎖
- 全域性ID
- 計數器
- 限流
- 位統計
- 購物車
- 使用者訊息時間線timeline
- 訊息佇列
- 抽獎
- 點贊、簽到、打卡
- 商品標籤
- 商品篩選
- 使用者關注、推薦模型
- 排行榜
1、快取
String型別
例如:熱點資料快取(例如報表、明星出軌),物件快取、全頁快取、可以提升熱點資料的訪問資料。
2、資料共享分散式
String 型別,因為 Redis 是分散式的獨立服務,可以在多個應用之間共享
分散式Session
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
</dependency>
3、分散式鎖
String 型別setnx方法,只有不存在時才能新增成功,返回true
publicstaticbooleangetLock(Stringkey){
/////////////在指定的 key 不存在時,為 key 設定指定的值 設定成功,返回 1 。 設定失敗,返回 0 。
Longflag=jedis.setnx(key,"1");
if(flag==1){
//////////設定過期時間
jedis.expire(key,10);
}
returnflag==1;
}
publicstaticvoidreleaseLock(Stringkey){
jedis.del(key);
}
4、全域性ID
int型別,incrby,利用原子性
///////////在原基礎上增加
incrby userid 1000
分庫分表的場景,一次性拿一段
5、計數器
int型別,incr方法
例如:文章的閱讀量、微博點贊數、允許一定的延遲,先寫入Redis再定時同步到資料庫
6、限流
int型別,incr方法
以訪問者的ip和其他資訊作為key,訪問一次增加一次計數,超過次數則返回false