前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis教程05(hash类型命令介绍)

Redis教程05(hash类型命令介绍)

作者头像
用户4919348
发布2019-04-02 11:31:49
4580
发布2019-04-02 11:31:49
举报
文章被收录于专栏:波波烤鸭波波烤鸭

前面几篇文章给大家介绍了String的常用命令,本篇主要介绍下Hash的常用命令

Redis教程04(String类型指BIT) Redis教程03(String介绍)

Hash介绍

在实际开发过程中我们肯定会碰到很多需要存储对象的需求,此时hash就比较合适了。hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。 Redis 中每个 hash 可以存储 2E32 - 1 键值对(40多亿)。

命令

说明

hset

设置key中字段的值

hget

获取key中字段的值

hmset

批量设置key中的字段

hmget

批量获取key中字段的值

hdel

删除key中指定的字典

hsetnx

设置key中的字段的值,如果字段存在就忽略

hvals

获取key中所有的字段的值

hkeys

获取key中的所有的字段

hgetall

获取key中的所有的字段及值

hexists

判断key中的字段是否存在

hincrby

将key中的字段增加特定的值

hincrbyfloat

和hincrby类似增加的float类型的数据

hlen

获取key中的字段的个数

hstrlen

获取key中某个字段的值得长度

HSet

HSet命令用来设置指定的key中的字段的值。

代码语言:javascript
复制
127.0.0.1:6379> hset user1 name zhangsan
(integer) 1

HGet

HGet命令获取指定的key中的hash值

代码语言:javascript
复制
127.0.0.1:6379> hget user1 name
"zhangsan"

HMSet

HMGet命令用来批量设置对应的key中的字段的值

代码语言:javascript
复制
127.0.0.1:6379> hmset user2 name zhangsan age 18 sex nan address sz
OK

HMGet

HMGet命令用来批量获取key中的字段所对应的值

代码语言:javascript
复制
127.0.0.1:6379> hmget user2 name age sex address
1) "zhangsan"
2) "18"
3) "nan"
4) "sz"

HDel

HDel命令可以移除指定的key中对应的字段,如果字段不存在则忽略

代码语言:javascript
复制
127.0.0.1:6379> hdel user2 address a1
(integer) 1 # 移除成功
127.0.0.1:6379> hmget user2 name age sex address
1) "zhangsan"
2) "18"
3) "nan"
4) (nil) # 不存在了

HSetNx

如果设置的字段不存在就设置值,如果存在就忽略

代码语言:javascript
复制
127.0.0.1:6379> hsetnx user2 name lisi
(integer) 0 # name字段存在,不起作用
127.0.0.1:6379> hsetnx user2 id 1001
(integer) 1 # id不存在,设置成功
127.0.0.1:6379> hmget user2 name age id
1) "zhangsan"
2) "18"
3) "1001"

HVals

HVals可以返回指定的key中所有字段的值

代码语言:javascript
复制
127.0.0.1:6379> hvals user2
1) "zhangsan"
2) "18"
3) "nan"
4) "1001"

HKeys

HKeys命令可以获取指定的key中的所有的字段信息

代码语言:javascript
复制
127.0.0.1:6379> hkeys user2
1) "name"
2) "age"
3) "sex"
4) "id"

HGetAll

HGetAll可以获取指定key中的所有的字段和对应的值,返回的形式是先返回字段然后是对应的值,所以返回的数据的长度是本身长度的两倍,如下:

代码语言:javascript
复制
127.0.0.1:6379> hgetall user2
1) "name"
2) "zhangsan"
3) "age"
4) "18"
5) "sex"
6) "nan"
7) "id"
8) "1001"

HExists

HExists用来判断指定的key中是否还有某字段,有返回1,没有返回0,如下:

代码语言:javascript
复制
127.0.0.1:6379> hexists user2 name
(integer) 1
127.0.0.1:6379> hexists user2 ids
(integer) 0

HIncrBy

HIncrBy用来增加指定的key中的某字段的值,如果字段不存在,则会创建字段与key关联,默认值为0然后增加相关数据。如果字段对应的值不是数字则报错

代码语言:javascript
复制
127.0.0.1:6379> hget user2 age
"18"
127.0.0.1:6379> hincrby user2 age 2
(integer) 20 # 增加2 并返回增加后的结果
127.0.0.1:6379> hincrby user2 age1 10
(integer) 10 # 关联字段 初始0 再加10
127.0.0.1:6379> hincrby user2 name 10
(error) ERR hash value is not an integer # 类型不匹配,报错

HIncrByFloat

该命令和HIncrBy类似,增加的是float类型的数据

HLen

HLen命令获取的是指定的key下的字段的个数

代码语言:javascript
复制
127.0.0.1:6379> hlen user2
(integer) 5

HStrLen

HStrLen获取指定key下的字段的值的长度

代码语言:javascript
复制
127.0.0.1:6379> hstrlen user2 name
(integer) 8
127.0.0.1:6379> hstrlen user2 address
(integer) 0 #不存在返回0
127.0.0.1:6379> hstrlen user2 sex
(integer) 3

~好了本文到此为止 更多资料欢迎参考官网手册

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年02月12日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Hash介绍
    • HSet
      • HGet
        • HMSet
          • HMGet
            • HDel
              • HSetNx
                • HVals
                  • HKeys
                    • HGetAll
                      • HExists
                        • HIncrBy
                          • HIncrByFloat
                            • HLen
                              • HStrLen
                              相关产品与服务
                              云数据库 Redis
                              腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
                              领券
                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档