redis学习笔记-----基本数据类型之哈希(HASH)

哈希(HASH)

哈希就像是一个微缩版的 redis。由键值对组成。一般讲数据库中的记录取出直接放入 redis 中使用。

HSET、HMSET

  • 设置单个key
  • 一次设置多个key

经过测试当前版本5.0.4,hset 也可以一次设置多个 key

hset 设置多个 key

> hset user:1 name jack email jack@qq.com
(integer) 2

> hget user:1 name
"jack"

> hget user:1 email
"jack@qq.com"

hset 设置单个 key

> hset user:2 name tom email tom@qq.com
(integer) 2

> hget user:2 name
"tom"

> hget user:2 email
"tom@qq.com"

HGET、HMGET

  • hget 获取单个 key 的值
  • hmget 一次获取多个 key 的值
> hmget user:2 name email
1) "tom"
2) "tom@qq.com"

HEDL

  • 删除一个或多个指定的key
> hdel user:2 name
(integer) 1

> hget user:2 name
(nil)

> hget user:2 email
"tom@qq.com"

HSETNX

  • 设置指定key的值,如果可以已经存在,则不进行任何操作
> hsetnx user:2 email 2@qq.com
(integer) 0

> hsetnx user:2 name tome
(integer) 1

> hmget user:2 name email
1) "tome"
2) "tom@qq.com"

HVALS

-返回所有格值

> hvals user:2
1) "tom@qq.com"
2) "tome"

HKEYS

  • 返回所有的键
> hkeys user:2
1) "email"
2) "name"

HGETALL

  • 返回所有的键和值
  • 返回值中,每个字段名的下一个就是他的值
> hgetall user:2
1) "email"
2) "tom@qq.com"
3) "name"
4) "tome"

HEXISTS

  • 检查指定键是否存在
> hexists user:2 class
(integer) 0

> hexists user:2 email
(integer) 1

HINCRBY

  • 对哈希中指定的键进行自增操作,如果对应的键不存在,则创建。如果存在,直接新增
  • 所操作的键的值必须为整型
> hincrby user:2 old 1
(integer) 1

> hgetall user:2
1) "email"
2) "tom@qq.com"
3) "name"
4) "tome"
5) "sex"
6) "man"
7) "old"
8) "1"

> hincrby user:2 old 2
(integer) 3


> hgetall user:2
1) "email"
2) "tom@qq.com"
3) "name"
4) "tome"
5) "sex"
6) "man"
7) "old"
8) "3"

> hincrby user:2 name 1
(error) ERR hash value is not an integer

HINCRBYFLOAT

  • 同上面的 hincrby,只不过支持的值是 float 类型

HLEN

  • 返回指定哈希所包含的字段数量(key 的数量)
> hlen user:2
(integer) 4

> hgetall user:2
1) "email"
2) "tom@qq.com"
3) "name"
4) "tome"
5) "sex"
6) "man"
7) "old"
8) "3"

HSTRLEN

  • 返回指定 key 的 value 的字符串长度
  • 如果 value 或 哈希不存在,则返回0
> hstrlen user:2 name
(integer) 4

> hget user:2 name
"tome"

文章作者: chenggx
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 chenggx !
评论
 上一篇
redis学习笔记-----基本数据类型之有序集合 redis学习笔记-----基本数据类型之有序集合
有序集合(sort sets) 与集合类型,区别是集合不能字段排序,而有序集合可以设置额外的优先级(score)参数来为成员排序。 使用场景:当你需要一个有序并且不重复的集合列表的时候,使用有序集合。 ZADD 将一个或多个元素以及其
2019-12-26
下一篇 
redis学习笔记-----基本数据类型之集合 redis学习笔记-----基本数据类型之集合
集合(Set) 与 list 类似,区别是 set 中的值是不重复的。 SADD 将一个或多个member元素加入到集合key当中,已经存在于集合的member元素将被忽略。 假如key不存在,则创建一个只包含member元素作成员的集合
2019-12-10
  目录