漲姿勢!Redis這16種妙用,應該見識一下
1、快取
2、資料共享分散式
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
</dependency>
3、分散式鎖
String 型別setnx方法,只有不存在時才能新增成功,返回true
public static boolean getLock(String key) {
Long flag = jedis.setnx(key, "1");
if (flag == 1) {
jedis.expire(key, 10);
}
return flag == 1;
}
public static void releaseLock(String key) {
jedis.del(key);
}
4、全域性ID
5、計數器
6、限流
7、位統計
字元是以8位二進位制儲存的
set k1 a
setbit k1 6 1
setbit k1 7 0
get k1
/* 6 7 代表的a的二進位制位的修改
a 對應的ASCII碼是97,轉換為二進位制資料是01100001
b 對應的ASCII碼是98,轉換為二進位制資料是01100010
因為bit非常節省空間(1 MB=8388608 bit),可以用來做大資料量的統計。
-
例如: 線上使用者統計,留存使用者統計
setbit onlineusers 01 setbit onlineusers 11 setbit onlineusers 20
-
支援按位與、按位或等等操作
BITOPANDdestkeykey[key...] ,對一個或多個 key 求邏輯並,並將結果儲存到 destkey 。BITOPORdestkeykey[key...] ,對一個或多個 key 求邏輯或,並將結果儲存到 destkey 。BITOPXORdestkeykey[key...] ,對一個或多個 key 求邏輯異或,並將結果儲存到 destkey 。BITOPNOTdestkeykey ,對給定 key 求邏輯非,並將結果儲存到 destkey 。
-
計算出7天都線上的使用者
BITOP "AND" "7_days_both_online_users" "day_1_online_users" "day_2_online_users" ... "day_7_online_users"
8、購物車
+1:hincr。-1:hdecr。刪除:hdel。全選:hgetall。商品數:hlen。
9、使用者訊息時間線timeline
10、訊息佇列
11、抽獎
12、點贊、簽到、打卡
13、商品標籤
14、商品篩選
// 獲取差集sdiff set1 set2// 獲取交集(intersection )sinter set1 set2// 獲取並集sunion set1 set2
15、使用者關注、推薦模型
follow 關注 fans 粉絲
-
相互關注: -
sadd 1:follow 2
-
sadd 2:fans 1
-
sadd 1:fans 2
-
sadd 2:follow 1 -
我關注的人也關注了他(取交集): -
sinter 1:follow 2:fans
-
可能認識的人:
-
使用者1可能認識的人(差集): sdiff 2:follow 1:follow
-
使用者2可能認識的人: sdiff 1:follow 2:follow
16、排行榜
來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70013542/viewspace-3012385/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 帶你漲姿勢的認識一下 KafkaKafka
- 漲姿勢瞭解一下Kafka消費位移可好?Kafka
- React16時代,該用什麼姿勢寫 React ?React
- 關於6種Web安全常見的攻防姿勢Web
- 入門快應用的另一種姿勢
- Redis的正確使用姿勢Redis
- 構建 Go 應用 docker 映象的十八種姿勢GoDocker
- 建立 React 元件三種“姿勢”React元件
- PTH的幾種食用姿勢
- 提意見的正確"姿勢"
- redis應用系列一:分散式鎖正確實現姿勢Redis分散式
- Redis最常見的5種應用場景Redis
- Python爬蟲的N種姿勢Python爬蟲
- Guava Cache使用的三種姿勢Guava
- npm換源的幾種姿勢NPM
- 漲姿勢:10 大主宰世界的演算法!演算法
- 漲姿勢了,有意思的氣泡 Loading 效果
- 常見的Web安全及其攻防姿勢Web
- Flutter 知識梳理 (狀態管理) - Provider 之各種 XXProvider 的使用姿勢FlutterIDE
- [譯] 震驚,還可以用這種姿勢學習程式設計程式設計
- 程式碼除錯的N種姿勢除錯
- PHP 檔案操作的各種姿勢PHP
- 解鎖跨域的九種姿勢跨域
- 掌握Redis分散式鎖的正確姿勢Redis分散式
- 建立索引,這些知識應該瞭解索引
- 關於Web安全常見的攻防姿勢Web
- 該如何以正確的姿勢插入SVG Sprites?SVG
- Laravel 專案,進 Redis 控制檯搜不到任何值,試試這個姿勢LaravelRedis
- redis應用系列三:延遲訊息佇列正確實現姿勢Redis佇列
- 解鎖環境變數在雲原生應用中各種姿勢變數
- 分散式事務的這些常見用法都有坑,來看看正確姿勢分散式
- Redis常見的16個使用場景Redis
- 小程式各種姿勢實現登入
- Windwos密碼匯出的幾種姿勢密碼
- 論二級域名收集的各種姿勢
- 【吐血整理】Git的各種撤銷姿勢Git
- Powershell惡意程式碼的N種姿勢
- 初識Python,我想你應該瞭解這些...Python