1,keys pattern,獲得符合規則的鍵名列表
glob風格的萬用字元規則:
? 匹配乙個字元
* 匹配任意個包括0個字元
匹配任乙個字元,可以使用-表示乙個範圍
\x 匹配x,用於轉義字元
kyes命令需要遍歷redis中所有鍵,當鍵數量較多時會影響效能,因此不建議在生產中使用
2,redis的鍵名最佳命名規則:
物件型別:物件id:物件屬性,比如user:6:friends來儲存id為1的使用者的好友列表
對於多個單詞則推薦使用.分隔符,另外可讀性也非常重要,不要省這麼一點點空間。
3,生成自增id:
rdbs中科院使用auto_increment來實習自增id主鍵,redis中可以對每一類物件使用名為users:count的鍵來儲存當前型別的物件的數量,每次增加乙個新物件都使用incr原子命令獲取該新物件的id值即可。
4,雜湊型別hash
適合用來儲存物件,使用物件類別和id構成鍵名,使用字段表示物件的屬性,而字段值儲存屬性值。
一般來講儲存物件可以用json序列化的字串,可以用hash,如果是需要頻繁的獲取或者更新物件的某些屬性,為了防止傳輸開銷和序列化開銷,最好使用hash。
雜湊型別還有乙個好處,就是對於同一類物件,每個物件的屬性可以不一樣,這在關係型資料庫中不可能
# 增加數字
hincrby key field increment
# 只獲取欄位名或字段值
hkeys key / hvals key / hlen key
5,集合型別set
# 獲取set中元素個數
scard key
# 獲取set中所有元素
smembers key
# 進行集合運算並將結果儲存
sdiffstore dest key1 key2
sinterstore dest key1 key2
sunionstore dest key1 key2
# 隨機獲取set中元素
srandmember key count
count 為正數的時候隨機獲取count個不重複元素,為負數時候隨機獲取|count|個可能重複元素
6,有序集合sortedset型別
list和sortedset的應用場景區別:
1) list型別是通過linkedlist實現的,獲取靠近兩端的資料速度極快,而當元素增多後,訪問中間資料的速度會較慢,所以它更適合實現如 新鮮事 日誌 這樣很少訪問中間元素的應用。
2) sortedset型別使用雜湊表和跳躍表skiplist實現,所以即使讀取位於中間的部分的元素速度很非常快,時間複雜度是o(log(n)),不過比hash慢,hash是o(1)
3) list中不能簡單調整某個元素的位置,但是有序集合可以(通過更改元素的score)
4) sortedset比list更耗記憶體(ps:這不廢話嗎,沒有免費午餐)
sortedset可以說是redis中最高端的資料結構了,吊爆了~
# zrange key start end [withscores]
按照元素score分數從小到大的順序返回索引從start到stop之間的所有元素(包含兩端元素,索引從0開始)
# zrangebyscore key min max [withscores] limit offset count
如果希望分數範圍不包括端點值,可在分數前加上(符號。
zrangebyscore scoreboard (80 +inf
後面的offset和count跟mysql中的含義一樣,乙個是偏移量,乙個是數量
# zrevrangebyscore scoreboard 100 0 limit 0 3
注意上面的min和max是跟前面的zrangebyscore是相反的
redis 練習筆記(四) redis 管理
rename oldkey newkey 鍵的重新命名 renamenx oldkey newkey 重新命名,要求newkey不存在 dbsize 檢視庫 randomkey 返回隨機鍵 expire name second 設定name在second秒後過期 對於字串二次設值後,expire無效...
redis筆記(基礎一)
前言 你總是想的太多而讀書太少 使用redis,首先要安裝redis。1 redis安裝 gcc的安裝很簡單,首先要確保root登入,其次就是linux要能連外網 yum y install gcc automake autoconf libtool make注意 執行yum時出現 var run ...
學習筆記 Redis基礎
列儲存資料庫 hbase,用於分布式檔案系統,將同一列資料儲存在一起。文件型資料庫 mongodb,用於web應用,與鍵值對類似,但值是結構化的。2.1 基本 能支援的功能點 2.2 linux安裝與啟動 預設安裝路徑 usr local bin,目錄下有redis cli和redis server...