redis資料型別學習筆記
redis資料型別學習筆記
之前是有學過redis不過一直沒用導致忘光光,最基本的知識就不寫了
String相關
-
基本set/get/del/strlen/apppend
-
mset/mget 一行命令同時設定/獲取多個鍵值對
> mset jo1 dio1 jo2 dio2 OK > mget jo1 jo2 dio1 dio2
-
incr/incrby/incrbyfloat 設定key增加,減少類似,把in換成de即可
> set rid 1 OK > incrby rid 5 6 > incr rid 7
-
設定資料的時效性 setex key seconds value / psetex key milliseconds value
-
資料庫中相關key設定約定,用
:
分隔(參考),或者不要欄位就存放一個json物件表名 主鍵名 主鍵值 欄位名 user id 1 name
Hash相關
-
一個key對應一個hash結構,field代表hash的鍵/欄位,value代表hash的值
> hset y_hash k1 v1 1 > hget y_hash k1 v1 > hset y_hash k2 v2 1 > hgetall y_hash k1 v1 k2 v2
-
hdel key field [field ...]
刪除一個或多個hash 的k-v. -
hmset ...
hmget ...
獲取多個 -
hlen key
獲取k-v數量,hexists key field
判斷是否存在某個鍵 -
hkeys key
獲取所有鍵,hvals key
獲取所有值 -
hincrby key field increment
增加某個值
List相關
-
資料結構是雙向連結串列,插入刪除效率高,一個key對應一條連結串列,
-
新增/修改用
lpush
和rpush
,移除並獲取一個用lpop key
和rpop key
-
獲取全部元素
lrange key 0 -1
, -
移除特定元素
lrem key count value
- count > 0 : 從表頭開始向表尾搜尋,移除與 VALUE 相等的元素,數量為 COUNT 。
- count < 0 : 從表尾開始向表頭搜尋,移除與 VALUE 相等的元素,數量為 COUNT 的絕對值。
- count = 0 : 移除表中所有與 VALUE 相等的值。
-
應用場景:展示使用者的關注列表,最新的在最前
set相關
-
set是無序集合,成員不允許重複,hash表實現,各操作複雜度O(1)
-
sadd key member [member ...]
增加成員 -
srem key member [member ...]
移除成員 -
smembers key
獲取所有成員,scard key
獲取個數 -
sismember key value
判斷是否包含成員1包含0不包含 -
應用:隨機推薦,求交集並集什麼的,黑白名單,記錄網站各種訪問資料
- string來配合incr來統計PV
- set配合cookie/ip來記錄UV/IP
sorted_set
-
其他見Redis中文網
-
sorted_set的成員帶有一個score用來排序
-
zadd key score member[score member ...]
新增/更新成員 -
zrange key 0 -1 [withscores]
獲取資料,低到高,帶引數則帶上score
-
zrevrange key 0 -1
獲取資料從高到低 -
zrem key member [member ...]
刪除成員 -
z[rev]rangebyscore key min max [withscores]
獲取指定範圍成員 -
z[rev]rank key member
獲取成員排名(索引) -
zcard key
和zcount key min max
獲取成員總量和統計範圍內數量 -
zscore key member
和zincrby key increment member
修改成員分數 -
應用:投票,排行榜,活躍度統計,任務/訊息權重應用