首頁 类库下载 其它類別庫 PHP+Redis:hash雜湊類型

PHP+Redis:hash雜湊類型

Oct 20, 2016 pm 02:04 PM

3、hash雜湊類型

簡介

hash散列類似於一個小型的Redis資料庫

一個雜湊可以包含多個鍵值對

散列的每個鍵都不能重複,各不相同,無序排列

其值可以是字串或數字值

對於數字值,可以執行自增或自減操作

散列結構

下面的結構中,user代表鍵名,其可以包含多個不同的鍵值對

​​
[
    "user":[
        "name1":"yanying1",
        "name2":"yanying2",
        "name3":"yanying3"
    ]
]
登入後複製

操作方法

PHP+Redis:hash雜湊類型

演示(命令列+ 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已經被刪除


本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)