【Redis筆記(三)】 Redis資料結構 - hash雜湊

來源:互聯網
上載者:User

原創作品,轉載請標明:http://blog.csdn.net/Xiejingfa/article/details/50550416

在上一篇文章中【Redis筆記(二)】 Redis資料結構-string字串中,我們學習了Redis最基本的資料結構string,今天我們的主角是 – hash(雜湊)類型。 hash類型介紹

hash是Redis2.0後增加的一種資料類型,類似大多數程式設計語言中的map資料結構一樣,Redis是索引值對的集合,也就是說它存放的是字串和字串之間的映射。由於這個特性,hash特別適用於儲存一個對象。將一個Object Storage Service在hash中會佔用更少的記憶體,並且可以方便地存取整個對象。

hash的主要命令可以在這裡查詢。 hash的相關命令 1、hset命令

hset命令用來將某個hash指定鍵的值,如果鍵不存在,則建立並設定對應的值,返回一個整數1,如果鍵已經存在,則對應的值將被覆蓋並返回整數0。具體格式為:

hset hash_name field value

樣本1:

127.0.0.1:6379> hset myhash name fred(integer) 1127.0.0.1:6379> hset myhash name fred2(integer) 0
2、hmset命令

hmset命令和hset命令的作用相似,可以用來設定hash的鍵和值。不同的是hmset可以同時設定多個索引值對。操作成功後hmset命令返回一個簡單的字串“OK”。具體格式如下:

hmset hash_name field1 value1 field2 value2...

樣本2:

127.0.0.1:6379> hmset myhash name fred age 24OK127.0.0.1:6379> hget myhash name"fred"127.0.0.1:6379> hget myhash age"24"
3、hsetnx命令

hsetnx命令也用來在指定鍵不存在的情況下設定索引值資訊。如果鍵不存在,則Redis會先建立鍵,然後設定對應的值,操作成功後返回整數1。如果該鍵已經存在,則該命令不進行任何操作,傳回值為0。具體格式如下:

hsetnx hash_name field value

樣本3:

127.0.0.1:6379> hsetnx myhsh address hangzhou(integer) 1127.0.0.1:6379> hsetnx myhsh address guangzhou(integer) 0127.0.0.1:6379> hget myhsh address"hangzhou"
4、hget命令

hget命令用來擷取某個hash指定key的值。如果該鍵存在,直接返回對應的值,否則返回nil。具體格式如下:

hget hash_name field

樣本4:

127.0.0.1:6379> hset myhash name fred(integer) 0127.0.0.1:6379> hget myhash name"fred"127.0.0.1:6379> hget myhash nonkey(nil)
5、hmget命令

hmget命令和hget命令類似,用來返回某個hash多個鍵的值的列表,對於不存在的鍵,返回nil值。具體格式如下:

hmget hash_name field1 field2...

樣本5:

127.0.0.1:6379> hmset myhash name fred age 24OK127.0.0.1:6379> hmget myhash name age weight1) "fred"2) "24"3) (nil)
6、hexists命令

hexists命令用來判斷某個hash指定鍵是否存在,若存在返回整數1,否則返回0。具體格式如下:

hexists hash_name field

樣本6:

127.0.0.1:6379> hset myhash name fred(integer) 0127.0.0.1:6379> hexists myhash name(integer) 1127.0.0.1:6379> hexists myhash home(integer) 0
7、hlen命令

hlen命令用來返回某個hash中所有鍵的數量。具體格式如下:

hlen hash_name

樣本7:

127.0.0.1:6379> hmset myhash name fred age 24OK127.0.0.1:6379> hlen myhash(integer) 2127.0.0.1:6379> hlen nonhash(integer) 0
8、hdel命令

hdel命令用來刪除某個hash指定的鍵。如果該鍵不存在,則不進行任何操作。hdel命令的傳回值是成功刪除的鍵的數量(不包括不存在的鍵)。具體格式為:

hdel hash_name field:

樣本8:

127.0.0.1:6379> hmset myhash name fred age 24OK127.0.0.1:6379> hdel myhash name age(integer) 2127.0.0.1:6379> hmget myhash name age1) (nil)2) (nil)
9、hkeys命令

hkeys命令返回某個hash的所有鍵,如果該hash不存在任何鍵則返回一個空列表。具體格式如下:

hkeys hash_name

樣本9:

127.0.0.1:6379> hmset myhash name fred age 24OK127.0.0.1:6379> hkeys myhash1) "name"2) "age"127.0.0.1:6379> hdel myhash name age(integer) 2127.0.0.1:6379> hkeys myhash(empty list or set)
10、hvals命令

hvals命令返回某個hash的所有值的列表。具體格式如下:

hvals hash_name

樣本10:

127.0.0.1:6379> hmset myhash name fred age 24OK127.0.0.1:6379> hvals myhash1) "fred"2) "24"
11、hgetall命令

hgetall命令返回一個列表,該列表包含了某個hash的所有鍵和值。在傳回值中,先是鍵,接下來的一個元素是對應的值,所以hgetall命令返回的列表長度是hash大小的兩倍。具體格式如下:

hgetall hash_name

樣本11:

127.0.0.1:6379> hmset myhash name fred age 24OK127.0.0.1:6379> hgetall myhash1) "name"2) "fred"3) "age"4) "24"
12、hincrby命令和hincrbyfloat命令

這兩個命令都用來對指定鍵進行增量操作,不同的是hincrby命令每次加上一個整數值,而hincrbyfloat命令每次加上一個浮點值。操作成功後返回增量操作後的最終值。具體格式如下:

hincrby hash_name field khincrbyfloat hash_name field k

樣本12:

127.0.0.1:6379> hset myhash age 24(integer) 0127.0.0.1:6379> hincrby myhash age 2(integer) 26127.0.0.1:6379> hincrby myhash age -2(integer) 24

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.