4. Redis hash表命令

Redis的哈希值是字符串字段和字符串值之间的映射,所以他们是表示对象的完美数据类型

在Redis中的哈希值,可存储超过400十亿键值对。

例子

redis 127.0.0.1:6379> HMSET redis name "redis tutorial" description "redis basic commands for caching" likes 20 visitors 23000
OK
redis 127.0.0.1:6379> HGETALL redis

1) "name"
2) "redis tutorial"
3) "description"
4) "redis basic commands for caching"
5) "likes"
6) "20"
7) "visitors"
8) "23000"

HSET key field value

将哈希表key中的域field设置成指定的value,如果key不存在则新建一个hash表,如果域不存在则新建域,如果域已存在则更新域,如果field不存在返回1表示新建,存在则返回0表示更新

127.0.0.1:6379> HSET userinfo username 'stronger'
(integer) 1
127.0.0.1:6379> HSET userinfo userpsw '123456'
(integer) 1
127.0.0.1:6379> HSET userinfo userpsw '654321'
(integer) 0

HGET key field

获取哈希表key中的域field的值,如果key或者field不存在则返回(nil)

127.0.0.1:6379> HGET userinfo2 username
(nil)
127.0.0.1:6379> HGET userinfo username
"stronger"
127.0.0.1:6379> HGET userinfo email
(nil)

HSETNX key field value

将哈希表中的域field设置成指定的值,只有field不存在时才可以成功,如果field存在操作无效,返回0

127.0.0.1:6379> HGET userinfo username
"stronger"
127.0.0.1:6379> HSETNX userinfo username 'fish'
(integer) 0
127.0.0.1:6379> HGET userinfo username
"stronger"

HMSET key field vale [field value]

同时将多个field-value设定到hash表中,如果field已存在值则会被覆盖掉

127.0.0.1:6379> HMSET userinfo email 'yangdm@gmail.com' sex 'male'
OK

HMGET key field [field]

同时获得key存储的hansh表中多个field的值,如果不存在则返回(nil)

127.0.0.1:6379> HMGET userinfo email sex age
1) "yangdm@gmail.com"
2) "male"
3) (nil)

HGETALL key

返回key存储的所有field及value

127.0.0.1:6379> HGETALL userinfo
1) "username"
2) "stronger"
3) "userpsw"
4) "654321"
5) "email"
6) "yangdm@gmail.com"
7) "sex"
8) "male"
127.0.0.1:6379> HGETALL userinfo2
(empty list or set)

HKEYS key

返回hash的所有域

127.0.0.1:6379> HKEYS userinfo
1) "username"
2) "userpsw"
3) "email"
4) "sex"

HVALS key

返回hash的所有域的值

127.0.0.1:6379> HVALS userinfo
1) "stronger"
2) "654321"
3) "yangdm@gmail.com"
4) "male"

HEXISTS key field##

检测key中存储的hash中field是否存在,存在返回1,否则返回0

127.0.0.1:6379> HEXISTS userinfo username
(integer) 1
127.0.0.1:6379> HEXISTS userinfo age
(integer) 0

HLEN key

返回key中存储的hash表中field的数量

127.0.0.1:6379> HLEN userinfo
(integer) 4

HINCRBY key field increment

给key中存储的hash表field增加increment,如果此field不存在,则创建值为0的field,然后增加increment。操作的字段必须是整数,参照字符串处理

127.0.0.1:6379> HINCRBY userinfo age 10
(integer) 10

HINCRBYFLOAT key field increment

给key中存储的hash表field增加increment,可以为浮点数,参照字符串处理

127.0.0.1:6379> HINCRBYFLOAT userinfo salary 150.56
"150.56"

HDEL key field [field]##

删除key中存储的hash表的field,可以删除一个或多个,成功返回被移除域的数量

127.0.0.1:6379> HKEYS userinfo
1) "username"
2) "userpsw"
3) "email"
4) "sex"
5) "age"
6) "salary"
127.0.0.1:6379> HDEL userinfo salary age
(integer) 2
127.0.0.1:6379> HKEYS userinfo
1) "username"
2) "userpsw"
3) "email"
4) "sex"
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,973评论 19 139
  • 本文为笔者对在学习Redis过程中所收集资料的一个总结,目的是为了以后方便回顾相关的知识,大部分为非原创内容。特此...
    EakonZhao阅读 14,508评论 0 9
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,767评论 18 399
  • Redis命令运行于redis服务器上,要在服务器上运行命令需要一个redis客户端,在安装Redis安装包时,我...
    第八共同体阅读 233评论 0 0
  • 他在天桥上摆出一只碗 从怀里摸索着拉出一根儿弦 背后老练地垫着下山前的一团阳 打照面儿 守着凑满藤蔓的一筒楼 伺候...
    石沐阅读 208评论 0 8