1. 程式人生 > >Redis學習筆記09Redis數據類型之(2) 哈希表類型

Redis學習筆記09Redis數據類型之(2) 哈希表類型

原來 1.2 sts lis holding 名稱 pty against 鍵值

1.1.1. hset

hash中添加鍵值對。

語法:

HSET key field value

參數:

key :鍵名稱,鍵值為一個hash表對象。

fieldhash表中的鍵名。

valuehash表中的鍵值。

返回值:

整數:1,成功添加了一個原來不存在的新的鍵對應的鍵值對。

0,成功的更新了一個原來存在的鍵對應的鍵值對。

ERRORkey對應的對象存在,但是並不是哈希表類型。

例子:

redis.coe2coe.me:6379> hset myhash host redis.coe2coe.me

(integer) 1

哈希表myhash中原來不存在host

這個鍵。

redis.coe2coe.me:6379> hset myhash port 6379

(integer) 1

哈希表myhash中原來不存在port這個鍵。

redis.coe2coe.me:6379> hset myhash port 6380

(integer) 0

哈希表myhash中原來已經存在port這個鍵。

redis.coe2coe.me:6379> hset myhash port 6380

(integer) 0

redis.coe2coe.me:6379> hset a host aaa

(error) WRONGTYPE Operation against a key holding the wrong kind of value

1.1.2. hget

獲取指定哈希表中的鍵對應的鍵值。

語法

HGET key field

參數:

key:鍵名,鍵值是一個哈希表。

field:哈希表中的鍵的鍵名。

返回值:

鍵值:哈希表中的鍵field對應的鍵值。

nil: 不存在指定的key或不存在指定的field

ERRORkey對應的對象存在,但是並不是哈希表類型。

例子:

redis.coe2coe.me:6379> hset myhash host redis.coe2coe.me

(integer) 1

redis.coe2coe.me:6379> hset myhash port 6379

(integer) 1

redis.coe2coe.me:6379> hset myhash port 6380

(integer) 0

redis.coe2coe.me:6379> hset myhash port 6380

(integer) 0

redis.coe2coe.me:6379> hget myhash host

"redis.coe2coe.me"

redis.coe2coe.me:6379> hget myhash port

"6380"

redis.coe2coe.me:6379> hget nosuchhash host

(nil)

redis.coe2coe.me:6379> hget myhash nosuchfield

(nil)

redis.coe2coe.me:6379>

redis.coe2coe.me:6379> set a 123

OK

redis.coe2coe.me:6379> hget a host

(error) WRONGTYPE Operation against a key holding the wrong kind of value

1.1.3. hexists

判斷指定的哈希表中是否存在指定的鍵。

語法:

HEXISTS key field

返回值:

1:成功找到該field

0:沒有找到對應的key或者沒有找到對應的field

ERRORkey對應的對象存在,但是並不是哈希表類型。

例子:

redis.coe2coe.me:6379> hexists myhash host

(integer) 1

redis.coe2coe.me:6379> hexists myhash port

(integer) 1

redis.coe2coe.me:6379> hexists nosuchhash host

(integer) 0

redis.coe2coe.me:6379> hexists myhash nosuchfield

(integer) 0

redis.coe2coe.me:6379> set a 123

OK

redis.coe2coe.me:6379> hexists a host

(error) WRONGTYPE Operation against a key holding the wrong kind of value

1.1.4. hdel

刪除指定的哈希表中的若幹個鍵。

語法:

HDEL key field [field ...]

返回值:

整數:刪除掉的哈希表中的field鍵的個數。不包括參數指定了而哈希表中不存在的field鍵。

0key對應的hash表不存在,或者哈希表中不包括所有的field

ERRORkey對應的對象存在,但是不是hash類型。

例子:

redis.coe2coe.me:6379> hdel myhash host

(integer) 1

redis.coe2coe.me:6379> hdel myhash host port

(integer) 1

redis.coe2coe.me:6379> hdel myhash host port

(integer) 0

redis.coe2coe.me:6379> hdel myhash nosuch key

(integer) 0

redis.coe2coe.me:6379> hdel nosuchhash host port

(integer) 0

redis.coe2coe.me:6379> set a 123

OK

redis.coe2coe.me:6379> hdel a host port

(error) WRONGTYPE Operation against a key holding the wrong kind of value

1.1.5. hkeys

獲取指定哈希表中的所有鍵的名稱。

語法:

HKEYS key

返回值:

鍵名稱的數組:操作成功。key對應的哈希表已經找到,或者key對應的對象不存在。

ERRORkey對應的對象存在,但是類型不是哈希表類型。

例子:

redis.coe2coe.me:6379> hkeys myhash

(empty list or set)

redis.coe2coe.me:6379> hset myhash host redis.coe2coe.me

(integer) 1

redis.coe2coe.me:6379> hset myhash port 6379

(integer) 1

redis.coe2coe.me:6379> hkeys myhash

1) "host"

2) "port"

redis.coe2coe.me:6379> hdel myhash host port

(integer) 2

redis.coe2coe.me:6379> hkeys myhash

(empty list or set)

redis.coe2coe.me:6379> hkeys nosuchhash

(empty list or set)

redis.coe2coe.me:6379> set a 123

OK

redis.coe2coe.me:6379> hkeys a

(error) WRONGTYPE Operation against a key holding the wrong kind of value

1.1.6. hgetall

獲取指定的哈希表中的所有鍵值對。

語法:

HGETALL key

返回值:

鍵值對的數組:操作成功。

例子:

redis.coe2coe.me:6379> hgetall myhash

(empty list or set)

redis.coe2coe.me:6379> hset myhash host redis.coe2coe.me

(integer) 1

redis.coe2coe.me:6379> hset myhash port 6379

(integer) 1

redis.coe2coe.me:6379> hgetall myhash

1) "host"

2) "redis.coe2coe.me"

3) "port"

4) "6379"

redis.coe2coe.me:6379> hdel myhash host port

(integer) 2

redis.coe2coe.me:6379> hgetall myhash

(empty list or set)

redis.coe2coe.me:6379> set a 123

OK

redis.coe2coe.me:6379> hgetall a

(error) WRONGTYPE Operation against a key holding the wrong kind of value

redis.coe2coe.me:6379> hgetall nosuchhash

(empty list or set)

1.1.7. hvals

獲取指定的哈希表的所有鍵值對的值的數組。

語法:

HVALS key

例子:

redis.coe2coe.me:6379> hset myhsh host redis.coe2coe.me

(integer) 1

redis.coe2coe.me:6379> hset myhash host redis.coe2coe.me

(integer) 1

redis.coe2coe.me:6379> hset myhash port 6379

(integer) 1

redis.coe2coe.me:6379> hvals myhash

1) "redis.coe2coe.me"

2) "6379"

Redis學習筆記09Redis數據類型之(2) 哈希表類型