成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

PHP+Redis實(shí)戰(zhàn)教程(5):hash散列類型

Elle / 1319人閱讀

摘要:我們發(fā)現(xiàn),第一個結(jié)果為第一個鍵值對的鍵,第二個結(jié)果為鍵值對的值,以此類推,每兩個為一組。其結(jié)果為,少了兩個結(jié)果,畢竟剛剛刪除了一個鍵值對版本演示第一步,鏈接數(shù)據(jù)庫我們先插入一個鍵值對到散列。原因即是,剛剛已經(jīng)被刪除

3、hash散列類型

簡介

hash散列類似于一個小型的Redis數(shù)據(jù)庫

一個散列可以包含多個鍵值對

散列的每個鍵都不能重復(fù),各不相同,無序排列

其值可以是字符串或數(shù)字值

對于數(shù)字值,可以執(zhí)行自增或者自減操作

散列結(jié)構(gòu)

下面的結(jié)構(gòu)中,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;如果鍵已經(jīng)存在,返回0

hset hash-key sub-key1 value1 // 返回 1

我們再添加一個不存在的鍵值對

hset hash-key sub-key2 value2 // 返回 1

這個時候,散列中已經(jīng)存在鍵sub-key1sub-key2,接下來我們再添加一個相同的鍵sub-key1到散列中,看看會發(fā)生什么:

hset hash-key sub-key1 value1 // 返回 0,由于該鍵已經(jīng)存在

下面我們通過hget獲取一個給定鍵sub-key1的值。

hget hash-key sub-key1 // "value1"

成功獲取了一個值。我們再獲取添加的所有元素看看,剛剛的到底添加了哪幾個值

hgetall hash-key

其結(jié)果如下。我們發(fā)現(xiàn),第一個結(jié)果為第一個鍵值對的鍵,第二個結(jié)果為鍵值對的值,以此類推,每兩個為一組。

"sub-key1"
"value1"
"sub-key2"
"value2"

下面我們試著刪除一個鍵試試,我們會發(fā)現(xiàn)如果 該鍵之前存在于散列中,那么刪除時候則返回1,否則,返回0

hdel hash-key sub-key1 // 該鍵之前存在于散列,返回1

我們再試著刪除一次sub-key1,發(fā)現(xiàn)當(dāng)刪除 不存在的鍵的時候,返回結(jié)果0

hdel hash-key sub-key1

我們再次獲取全部鍵值對,看看還剩些什么。

hgetall hash-key

其結(jié)果為,少了兩個結(jié)果,畢竟剛剛刪除了一個鍵值對

"sub-key1"
"value1"

PHP版本演示

第一步,鏈接redis數(shù)據(jù)庫

$redis = new Redis();
$redis->connect("127.0.0.1", 6379);

我們先插入一個鍵值對到hash-key散列。1代表插入成功;0元素代表已經(jīng)存在

$redis->hset("hash-key","sub-key1","value1"); // int 1,元素插入成功,之前不存在該鍵

我們再次插入相同鍵值對

$redis->hset("hash-key","sub-key1","value1"); // int 0,元素插入失敗,該鍵已經(jīng)存在

為了下面的演示使用,我們繼續(xù)插入一些其他的值

$redis->hset("hash-key","sub-key2","value2"); // int 0

下面我們使用hget獲取鍵對應(yīng)的值。我們試試獲取sub-key2的值。

$redis->hget("hash-key","sub-key2"); // "value2"

獲取了一個后,我們在嘗試使用hgetall獲取剛剛插入的全部值,看看里面包含哪些鍵值對

$redis->hgetall("hash-key");

獲得結(jié)果,是一個包含完整鍵值得數(shù)組

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鍵,發(fā)現(xiàn)其返回0. 則說明該鍵不存在集合中,刪除失敗

$redis->hdel("hash-key","sub-key1"); // 該鍵不存在,返回int 0

下面我們使用hgetall查看下散列中還剩余的所有鍵值對

$redis->hgetall("hash-key");

發(fā)現(xiàn),只返回了包含一個鍵值對的數(shù)組。

array (size=1)
  "sub-key2" => string "value2" (length=6)
  

原因即是,剛剛sub-key1已經(jīng)被刪除

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/21930.html

相關(guān)文章

  • PHP+Redis實(shí)戰(zhàn)教程(1):初識Redis

    摘要:本文為實(shí)戰(zhàn)讀書筆記簡介是一個非關(guān)系型遠(yuǎn)程內(nèi)存數(shù)據(jù)庫,由于操作都在內(nèi)存中,所以的速度非???,性能十分強(qiáng)勁。同時,還可以自動的以兩種不同的方式將數(shù)據(jù)庫內(nèi)容持久化到硬盤,保證數(shù)據(jù)的完整性。數(shù)據(jù)格式支持字符串列表集合散列有序集合數(shù)據(jù)類型。 本文為《Redis實(shí)戰(zhàn)》讀書筆記 Redis簡介 Redis是一個非關(guān)系型遠(yuǎn)程內(nèi)存數(shù)據(jù)庫,由于操作都在內(nèi)存中,所以Redis的速度非???,性能十分強(qiáng)勁。 它...

    張遷 評論0 收藏0
  • Python--Redis實(shí)戰(zhàn):第一章:初識Redis:第二節(jié):Redis數(shù)據(jù)結(jié)構(gòu)簡介

    摘要:上一篇文章實(shí)戰(zhàn)第一章初識第一節(jié)簡介下一篇文章實(shí)戰(zhàn)第一章初識第三節(jié)你好文章投票試煉可以存儲鍵與種不同的數(shù)據(jù)結(jié)構(gòu)類型之間的映射,這中數(shù)據(jù)結(jié)構(gòu)類別分別是字符串列表集合散列和有序集合。 上一篇文章:Python--Redis實(shí)戰(zhàn):第一章:初識Redis:第一節(jié):Redis簡介下一篇文章:Python--Redis實(shí)戰(zhàn):第一章:初識Redis:第三節(jié):你好Redis-文章投票試煉 Redis可...

    ghnor 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<