摘要:我們發現,第一個結果為第一個鍵值對的鍵,第二個結果為鍵值對的值,以此類推,每兩個為一組。其結果為,少了兩個結果,畢竟剛剛刪除了一個鍵值對版本演示第一步,鏈接數據庫我們先插入一個鍵值對到散列。原因即是,剛剛已經被刪除
3、hash散列類型
簡介
hash散列類似于一個小型的Redis數據庫
一個散列可以包含多個鍵值對
散列的每個鍵都不能重復,各不相同,無序排列
其值可以是字符串或數字值
對于數字值,可以執行自增或者自減操作
散列結構
下面的結構中,user代表鍵名,其可以包含多個不同的鍵值對。
[ "user":[ "name1":"yanying1", "name2":"yanying2", "name3":"yanying3" ] ]
操作方法
命令 | 行為 |
---|---|
hset | 將指定的元素添加到散列 |
hget | 獲取指定的鍵的值 |
hgetall | 獲取散列所有的鍵值對 |
hdel | 刪除給定鍵 |
$redis->hset | PHP版本,添加元素到散列 |
$redis->hget | PHP版本,獲取指定鍵的值 |
$redis->hgetall | PHP版本,獲取散列所有的鍵值對 |
$redis->hdel | PHP版本,刪除給定鍵 |
演示(命令行 + PHP演示)
命令行:
首先,我們添加一個鍵值對到散列。如果 成功則返回1;如果鍵已經存在,返回0
hset hash-key sub-key1 value1 // 返回 1
我們再添加一個不存在的鍵值對
hset hash-key sub-key2 value2 // 返回 1
這個時候,散列中已經存在鍵sub-key1和sub-key2,接下來我們再添加一個相同的鍵sub-key1到散列中,看看會發生什么:
hset hash-key sub-key1 value1 // 返回 0,由于該鍵已經存在
下面我們通過hget獲取一個給定鍵sub-key1的值。
hget hash-key sub-key1 // "value1"
成功獲取了一個值。我們再獲取添加的所有元素看看,剛剛的到底添加了哪幾個值
hgetall hash-key
其結果如下。我們發現,第一個結果為第一個鍵值對的鍵,第二個結果為鍵值對的值,以此類推,每兩個為一組。
"sub-key1" "value1" "sub-key2" "value2"
下面我們試著刪除一個鍵試試,我們會發現如果 該鍵之前存在于散列中,那么刪除時候則返回1,否則,返回0
hdel hash-key sub-key1 // 該鍵之前存在于散列,返回1
我們再試著刪除一次sub-key1,發現當刪除 不存在的鍵的時候,返回結果0
hdel hash-key sub-key1
我們再次獲取全部鍵值對,看看還剩些什么。
hgetall hash-key
其結果為,少了兩個結果,畢竟剛剛刪除了一個鍵值對
"sub-key1" "value1"
PHP版本演示
第一步,鏈接redis數據庫
$redis = new Redis(); $redis->connect("127.0.0.1", 6379);
我們先插入一個鍵值對到hash-key散列。1代表插入成功;0元素代表已經存在
$redis->hset("hash-key","sub-key1","value1"); // int 1,元素插入成功,之前不存在該鍵
我們再次插入相同鍵值對
$redis->hset("hash-key","sub-key1","value1"); // int 0,元素插入失敗,該鍵已經存在
為了下面的演示使用,我們繼續插入一些其他的值
$redis->hset("hash-key","sub-key2","value2"); // int 0
下面我們使用hget獲取鍵對應的值。我們試試獲取sub-key2的值。
$redis->hget("hash-key","sub-key2"); // "value2"
獲取了一個后,我們在嘗試使用hgetall獲取剛剛插入的全部值,看看里面包含哪些鍵值對
$redis->hgetall("hash-key");
獲得結果,是一個包含完整鍵值得數組
array (size=2) "sub-key1" => string "value1" (length=6) "sub-key2" => string "value2" (length=6)
查看完了所有的鍵值對,我們嘗試刪除其中一個鍵。 如果之前鍵存在于散列中,則返回1,反之,返回0
$redis->hdel("hash-key","sub-key1"); // 該鍵之前存在,返回int 1
我們再次嘗試刪除sub-key1鍵,發現其返回0. 則說明該鍵不存在集合中,刪除失敗
$redis->hdel("hash-key","sub-key1"); // 該鍵不存在,返回int 0
下面我們使用hgetall查看下散列中還剩余的所有鍵值對
$redis->hgetall("hash-key");
發現,只返回了包含一個鍵值對的數組。
array (size=1) "sub-key2" => string "value2" (length=6)
原因即是,剛剛sub-key1已經被刪除
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/21930.html
摘要:本文為實戰讀書筆記簡介是一個非關系型遠程內存數據庫,由于操作都在內存中,所以的速度非常快,性能十分強勁。同時,還可以自動的以兩種不同的方式將數據庫內容持久化到硬盤,保證數據的完整性。數據格式支持字符串列表集合散列有序集合數據類型。 本文為《Redis實戰》讀書筆記 Redis簡介 Redis是一個非關系型遠程內存數據庫,由于操作都在內存中,所以Redis的速度非常快,性能十分強勁。 它...
摘要:上一篇文章實戰第一章初識第一節簡介下一篇文章實戰第一章初識第三節你好文章投票試煉可以存儲鍵與種不同的數據結構類型之間的映射,這中數據結構類別分別是字符串列表集合散列和有序集合。 上一篇文章:Python--Redis實戰:第一章:初識Redis:第一節:Redis簡介下一篇文章:Python--Redis實戰:第一章:初識Redis:第三節:你好Redis-文章投票試煉 Redis可...
閱讀 1295·2021-10-08 10:04
閱讀 1922·2021-09-04 16:40
閱讀 2536·2019-08-30 13:21
閱讀 2280·2019-08-29 15:10
閱讀 2848·2019-08-29 12:35
閱讀 1189·2019-08-26 17:41
閱讀 3062·2019-08-26 17:03
閱讀 1136·2019-08-26 12:01