Redis学习笔记09Redis数据类型之 哈希表类型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis学习笔记09Redis数据类型之 哈希表类型相关的知识,希望对你有一定的参考价值。
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数据类型之 哈希表类型的主要内容,如果未能解决你的问题,请参考以下文章