Redis學習筆記09Redis數據類型之(2) 哈希表類型
1.1.1. hset
向hash中添加鍵值對。
語法:
HSET key field value
參數:
key :鍵名稱,鍵值為一個hash表對象。
field:hash表中的鍵名。
value:hash表中的鍵值。
返回值:
整數:1,成功添加了一個原來不存在的新的鍵對應的鍵值對。
0,成功的更新了一個原來存在的鍵對應的鍵值對。
ERROR:key對應的對象存在,但是並不是哈希表類型。
例子:
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。
ERROR:key對應的對象存在,但是並不是哈希表類型。
例子:
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。
ERROR:key對應的對象存在,但是並不是哈希表類型。
例子:
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鍵。
0:key對應的hash表不存在,或者哈希表中不包括所有的field。
ERROR:key對應的對象存在,但是不是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對應的對象不存在。
ERROR:key對應的對象存在,但是類型不是哈希表類型。
例子:
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) 哈希表類型