前言 前面學會了單機, 學會了集群, 但是redis咋用啊? 或者說, redis支持哪些數據類型呢? 常用的有五種: String , Hash, List, Set, zset(SortedSet) 一、String String 類型, 在前面也是使用過的. 直接來看一下 可以使用del na ...
前言
前面學會了單機, 學會了集群, 但是redis咋用啊? 或者說, redis支持哪些數據類型呢?
常用的有五種: String , Hash, List, Set, zset(SortedSet)
一、String
String 類型, 在前面也是使用過的. 直接來看一下
可以使用del name來刪除緩存
二、List
push指令:
push分兩個, 一個從左邊push, 一個從右邊push. 但是這個左右, 是對準備push的值而言的. 而不是針對將要push的數組來說的.
pop指令
pop同樣的, 也有兩個. 這次是針對list來說的了
三、Hash
hash與前面的都不同, 這裡是 key - field - value
相當於是, key是一個大類, 對應了一個 map, field就相當於是map的key, value相當於是map的value
hset進行賦值, hget用來獲取值.
hset name 1 elvin 這麼看, 是不是有點像往表裡面查數據的感覺, 只不過我的field用的是數值字元串
hash 有一個很好的用途:
比如, 我對一張表 t_usr 進行操作, 有一個新增方法, 可以返回一個id, 那麼我是否可以將數據進行緩存起來, hset t_usr id 值
那, 查詢的時候, 可以先進行緩存的查詢, 如果查詢不到, 或者查詢出來是空, 再去資料庫中查詢一次, hget t_usr id.
用這樣的方式, 是不是可以對那些訪問量比較大的地方, 進行加速訪問.
那既然使用到了緩存, 就牽涉到一個緩存同步的問題了. 怎麼解決呢?
一個很簡單的方式. 在調用刪除方法的時候, 可以 hdel t_usr id, 這樣, 在下一次查詢的時候, 是不是就會去查資料庫, 並將查詢的結果進行緩存, 就在刪除數據的時候, 實現了數據同步.
同樣的, 在修改的時候, 也可以做到數據同步, 不過這次有的選了, 可以選擇刪除緩存數據, 也可以選擇更新緩存數據.
四、Set
set集合中的元素, 是不能重覆的, 而且是無順序的.
這裡我將5,1重覆寫入, 但是很明顯, 只保留了一份, List 則不會出現這種情況.
五、zset(SortedSet)
zset 與 set 稍有不同, 不是說可以重覆, 而是他是有順序的. 而且這個順序是我們自己來設定的.
zadd新增指令:
從上圖看, 最後的順序, 是根據我們指定的分值來排序的.
zrem 刪除指令:
更詳細的指令可見: