Redis学习笔记09Redis数据类型之 哈希表类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis学习笔记09Redis数据类型之 哈希表类型相关的知识,希望对你有一定的参考价值。

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数据类型之 哈希表类型的主要内容,如果未能解决你的问题,请参考以下文章

redis数据结构之字典/哈希表

NoSQL学习笔记之——Redis基础

Redis学习笔记

Redis数据结构之字典

Redis学习笔记

redis数据库学习笔记