Redis hash是一個string類型的field和value的映射表。它的添加、删除操作都是0(1)(平均)
hash特别适合用于存儲對象,相較于将對象的每個字段存成單個string類型。将一個對象存儲在hash類型中會占用更少的記憶體,并且可以更友善的存儲整個對象。
下面是hash資料類型的操作指令
1、hset:設定hash field為指定值,如果key不存在,則先建立
1
2
3
4
<code>127.0.0.1:6379> hset user name zeng </code><code>//user</code><code>為表明,name為字段名 zeng為字段的值</code>
<code>(integer) 1</code>
<code>127.0.0.1:6379> hget user name</code>
<code>"zeng"</code>
2、hsetnx:設定hash field為指定值,如果key不存在,則先建立,如果存在則傳回0.
5
6
7
8
<code>127.0.0.1:6379> hsetnx user name yang</code>
<code>(integer) 0</code>
<code>127.0.0.1:6379> hsetnx user age 27</code>
<code>127.0.0.1:6379> hget user age</code>
<code>"27"</code>
3、hmset:同時設定hash的多個field
<code>127.0.0.1:6379> hmset user001 name zeng age 27 job IT</code>
<code>OK</code>
<code>127.0.0.1:6379> hmget user001 name age job</code>
<code>1) </code><code>"zeng"</code>
<code>2) </code><code>"27"</code>
<code>3) </code><code>"IT"</code>
4、hmget:通過擷取hash的多個field的值
5、hincrby:對hash表中指定字段的值做自增算法
<code>127.0.0.1:6379> hincrby user001 age 5</code>
<code>(integer) 32</code>
<code>(integer) 37</code>
<code>(integer) 42</code>
<code>127.0.0.1:6379> hget user001 age</code>
<code>"42"</code>
6、hexists:測試指定field是否存在,存在則傳回1,不存在傳回0
<code>127.0.0.1:6379> hexists user001 name</code>
<code>127.0.0.1:6379> hexists user001 sex</code>
7、hlen:傳回指定hash的field數量
<code>127.0.0.1:6379> hlen user </code><code>//user</code><code>隻設定了name age</code>
<code>(integer) 2</code>
<code>127.0.0.1:6379> hlen user001 </code><code>//user001</code> <code>設定了name、age、job三個field</code>
<code>(integer) 3</code>
8、hdel:删除指定hash的field
<code>127.0.0.1:6379> hdel user age</code>
<code>(nil)</code>
9、hkeys:傳回hash的所有field
<code>127.0.0.1:6379> hkeys user</code>
<code>1) </code><code>"name"</code>
<code>127.0.0.1:6379> hkeys user001</code>
<code>2) </code><code>"age"</code>
<code>3) </code><code>"job"</code>
10、hvals:傳回hash的所有value
<code>127.0.0.1:6379> hvals user001</code>
<code>2) </code><code>"42"</code>
11、hgetall:擷取hash中所有的key和value
<code>127.0.0.1:6379> hgetall user001</code>
<code>2) </code><code>"zeng"</code>
<code>3) </code><code>"age"</code>
<code>4) </code><code>"42"</code>
<code>5) </code><code>"job"</code>
<code>6) </code><code>"IT"</code>
本文轉自 曾哥最愛 51CTO部落格,原文連結:http://blog.51cto.com/zengestudy/1853974,如需轉載請自行聯系原作者