Redis小秘密
臨淵羨魚,不如退而織網,
一、Redis基本資料型別
想必很多人都能脫口而出String、List、Hash、Sorted Set和Set五種基本資料型別,
以及五大基本資料型別簡要區別:
- redis存盤的是:key、value格式的資料,其中key都是字串,value有5種不同的資料結構,
- value的資料結構:
- 字串型別 string;
- 哈希型別 hash : map格式;
- 串列型別 list : linkedlist格式,支持重復元素;
- 集合型別 set : 不允許重復元素;
- 有序集合型別 sortedset:不允許重復元素,且元素有順序,
還有五種基本資料型別底層對應的資料結構:

還有五種基本資料型別對應的使用場景:
String
- 計數器
- 分布式鎖
- 存盤物件
List
- 訊息佇列
- 排行榜
- 最新訊息
Set
- 好友/關注/粉絲/感興趣的人集合
- 隨機展示
- 黑/白名單
Hash
- 購物車
- 存盤物件
ZSET
- 銷量排名、積分排名、成績排名、各種排行榜
- 延遲佇列
- 限流
二、但是Redis還有其他的三種特殊資料型別呢?
還能脫口而出geospatial、hyperloglog和bitmap嗎,
1、地理位置-Geospatial
1 # getadd 添加地理位置
2 #規則:兩級無法直接添加,我們一般會下載城市資料,直接通過java程式一 次性匯入!
3 #有效的經度從-180度到180度,
4 #有效的緯度從-85. 05112878度到85.05112878度,
5 #當坐標位置超出上述指定范圍時,該命令將會回傳一個錯誤,
6 GEOADD china:cipty 31.405 12.4894 shanghai # 添加地理位置
7 geodist china:cipty shenzhen shanghai km # 獲取兩個地理之間的距離,單位是km
8 geohash china:cipty shenzhen shanghai # 將二維的經緯度轉換為-維的字串,如果兩個字串越接近,那么則距離越近!
9 geopos china:cipty shenzhen #獲取指定的城市的經度和緯度!

2、基數統計-Hyperloglog
說明:
- 基數不大,資料量不大就用不上,會有點大材小用浪費空間;
- 有局限性,就是只能統計基數數量,而沒辦法去知道具體的內容是什么;
- 和bitmap相比,屬于兩種特定統計情況,簡單來說,HyperLogLog 去重比 bitmap 方便很多;
- 一般可以bitmap和hyperloglog配合使用,bitmap標識哪些用戶活躍,hyperloglog計數,
一般使用:
- 統計注冊 IP 數;
- 統計每日訪問 IP 數;
- 統計頁面實時 UV 數;
- 統計在線用戶數;
- 統計用戶每天搜索不同詞條的個數,
1 PFadd mykey aIa b C defghij #創建第一組元素mykey
2 PFCOUNT mykey # 統計mykey元素的基數數量
3 PFadd mykey2 i j z xcvbnm #創建第二組元素mykey2
4 PFMERGE mykey3 mykey mykey2 #合并兩組mykey mykey2 => mykey3 并集
5 PFCOUNT mykey3 #看并集的數量!

3、位圖-Bitmaps
Bitmaps可用于統計用戶資訊,活躍、不活躍,登錄、未登錄,打卡狀態如365打卡,兩個為打卡的場景下都可以使用Bitmaps,其底層都是操作二進制位來進行記錄,就只有0和1兩個狀態,
1 SETBIT sig 0 1 # 設定位圖
2 GETBIT sig 6 # 獲取位圖
3 ################################
4 `用戶簽到`:模擬用戶打卡場景,0-6為一周,0為未打卡,1為打卡
5 BITCOUNT sig # 統計用戶一周打卡天數

三、Redis自帶性能測驗工具
后臺啟動Redis后即可通過命令打開新視窗使用自帶的性能測驗工具,
1 # 如只測驗set,100萬個請求,1億
2 $ redis-benchmark -t set -n 1000000 -r 100000000

四、Redis可以通過value獲取key?
據說是在Redis客戶端是無法通過value獲取key的,我也不確定,但是在Java業務上是可以實作這樣的需求的,

五、Redis五種基本資料型別的性能排序?
至今未解,有緣人求賜教,(String > ? Hash ? List ? Set ? Hash ? Sorted Set)
臨淵羨魚
不如退而織網
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/429264.html
標籤:其他
