在上篇部落格中在介紹字串型別的時候漏掉了乙個比較重要的內容,在這裡簡單補充下.
getbit key offset
setbit key offset value
bitcount key [start] [end]
bittop operation destkey key [key ... ]
getbit : 獲取字串型別鍵指定位置的二進位制位的值(0或1),如果要獲取的二進位制位的索引位置超過了二進位制位的實際長度,則預設位值為0
setbit : 設定字串型別鍵指定位置的二進位制位的值,如果要設定的二進位制位的索引位置超出了二進位制位的實際長度,setbit命令會自動將中間的二進位制位設定為0.
bitcount : 獲取值是1的二進位制位的個數,也可以通過引數限制統計位元組的範圍
bittop :
雜湊型別的鍵值也是一種字典結構,儲存了字段和字段值的對映,字段值只能是字串型別。乙個雜湊型別的鍵可以之多有232
−1個字段。
注意: redis的所有資料型別都不支援資料型別巢狀。
例如要儲存文章id為0001的部落格,則鍵可以設定為blog:0001,部落格的title,author,content等作為字段。
127.0
.0.1
:6379> hset
blog
:0001
author
gucb
(integer) 1
127.0
.0.1
:6379> hget
blog
:0001
author
"gucb"
127.0
.0.1
:6379> hset
blog
:0001
title "redis
install"
(integer) 1
127.0
.0.1
:6379> hget
blog
:0001
title
"redis
install"
接下來詳細介紹雜湊型別的各命令的使用方法,同樣先通過幫助命令檢視下雜湊型別大體有哪些命令。
127.0.0.1:6379>help @hash
命令原型
時間複雜度
命令描述
返回值hdel key field [field …]
o(n)
時間複雜度中的n為待刪除欄位的數量,如果待刪除的字段不存在則忽略,如果待刪除的鍵不存在,則視為空,返回值為0
實際刪除的字段數
hexists key field
o(1)
判斷指定鍵的指定的字段否存在
如果存在返回1,如果鍵或字段不存返回0
hget key field
o(1)
獲取鍵中指定欄位的關聯值
如果存在返回其關聯值,如果鍵或字段不存在返回nil
hgetall key
o(n)
獲取鍵key中所有欄位的值,n為鍵key中包含的字段的數量
返回欄位-值的列表
hincrby key field increment
o(1)
增加指定key中指定field關聯的value的值。如果key或field不存在,該命令將會建立乙個新key或新field,並將其關聯的value初始化為0,之後再指定數字增加的操作。該命令支援的數字是64位有符號整型,即increment可以負數
返回增加後的值
hincrbyfloat key field increment
o(1)
同上,只是增量值為浮點數
返回增加後的值
hkeys key
o(n)
時間複雜度中的n表示key包含的field數量。返回指定key的所有fields名
返回字段列表
hlen key
o(1)
獲取鍵key包含欄位的數量
返回字段數量
hmget key field [field …]
o(n)
時間複雜度n為要獲取的字段數,返回指定key的field關聯的值,如果key不存在返回一組nil
返回field關聯的值
hmset key field value [field value …]
o(n)
時間複雜度n為要設定的字段數n,依次對鍵key的各個field設定值,如果field已存在則覆蓋原先的值,如果不存在則新建
hscan key cursor [match pattern] [count count]23
4hset key field value23
4hsetnx key field value23
4hvals key23
4
redis學習筆記 redis資料型別
泛指非關係型的資料庫。隨著網際網路web2.0 的興起,傳統的關聯式資料庫在應付web2.0 特別是超大規模和高併發的sns型別的web2.0純動態 已經顯得力不從心,暴露了很多難以克服的問題,而非關係型的資料庫則由於其本身的特點得到了非常迅速的發展。nosql資料庫的產生就是為了解決大規模資料集合...
redis學習筆記(7) 壓縮字典zipmap
在hashtable實現中,redis引入了zipmap資料結構,保證在hashtable剛建立以及元素較少時,用更少的記憶體來儲存,同時對查詢的效率也不會受太大的影響。zipmap利用字串實現了簡單的hash表,來儲存少量key value對。zipmap的記憶體布局如下 1 zmlen 1個位元...
Redis學習筆記(三) 字典
redis的字典使用雜湊表作為底層實現,乙個雜湊表中可以有多個雜湊表節點,而每個雜湊節點就儲存在字典中的乙個鍵值對。redis字典所用的雜湊表由disht結構定義。typedef struct dictht table 屬性是乙個陣列,陣列中的每個元素都是乙個指向dictentry結構的指標,每個d...