当前位置: 首页 > news >正文

【Redis之Hash类型的详解Hash类型中常用命令的实践】

Redis之Hash类型的详解&Hash类型中常用命令的实践

前面我们通过对Redis中的String的命令做了充分的讲解以及实践学习以及通过对Redis中String类型之Bit命令的详解以及Bit命令的实践进行了学习,接下来我们学习Redis中的Hash类型以及Hash中常用命令的实践学习。

Redis中String类型内容请看这里呦:
【Redis之String类型的详解&String类型中常用命令的实践】
Redis中String类型是Bit命令内容请看这里呦:
【Redis中String类型之Bit命令的详解&Bit命令的实践】

Hash的基本介绍

Hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。Redis 中每个 hash 可以存储 2^32 - 1 键值对(40多亿)。

Redis中Hash中常用的命令

Hash中常用的命令备注说明
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中某个字段的值得长度

Redis中Hash命令的格式

hash中常用的命令 key(整个key,包含许多key、value) field1(小key) value1(与小key对应的value) field2 value2…

hset命令

给hash集合中的key,对应的field键赋值value(可以同时设置多个)

127.0.0.1:6379> hset student username xiaoming password 123456
(integer) 2
127.0.0.1:6379> 

在这里插入图片描述

hget命令

获取该集合中field对应的value值

127.0.0.1:6379> hget student username
"xiaoming"
127.0.0.1:6379> hget student password
"123456"

在这里插入图片描述

hmset命令

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

127.0.0.1:6379> hmset student1 username zhangsan password 123 age 18
OK

在这里插入图片描述

hmget命令

hmset命令用来批量取出对应的key中的字段的值

127.0.0.1:6379> hmget student1 username password age
1) "zhangsan"
2) "123"
3) "18"
127.0.0.1:6379> 

在这里插入图片描述

hdel命令

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

127.0.0.1:6379> hmget student1 username password age
1) "zhangsan"
2) "123"
3) "18"
127.0.0.1:6379> hdel student1 age 18
(integer) 1
127.0.0.1:6379> hmget student1 username password
1) "zhangsan"
2) "123"
127.0.0.1:6379> hmget student1 age
1) (nil)
127.0.0.1:6379> 

在这里插入图片描述

hsetnx命令

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

127.0.0.1:6379> hmget student1 username password
1) "zhangsan"
2) "123"
127.0.0.1:6379> hsetnx student1 age 18
(integer) 1
127.0.0.1:6379> hmget student1 username password age
1) "zhangsan"
2) "123"
3) "18"
127.0.0.1:6379> 

在这里插入图片描述

hvals命令

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

127.0.0.1:6379> hvals student1
1) "zhangsan"
2) "123"
3) "18"
127.0.0.1:6379> 

hkeys命令

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

127.0.0.1:6379> hkeys student1
1) "username"
2) "password"
3) "age"
127.0.0.1:6379> 

在这里插入图片描述

hgetall命令

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

127.0.0.1:6379> hvals student1
1) "zhangsan"
2) "123"
3) "18"
127.0.0.1:6379> hkeys student1
1) "username"
2) "password"
3) "age"
127.0.0.1:6379> hgetall student1
1) "username"
2) "zhangsan"
3) "password"
4) "123"
5) "age"
6) "18"
127.0.0.1:6379> 

在这里插入图片描述

hexists命令

hexists用来判断指定的key中是否还有某字段,有返回1,没有返回0。

127.0.0.1:6379> hgetall student1
1) "username"
2) "zhangsan"
3) "password"
4) "123"
5) "age"
6) "18"
127.0.0.1:6379> hexists student1 username
(integer) 1
127.0.0.1:6379> hexists student1 password
(integer) 1
127.0.0.1:6379> hexists student1 age
(integer) 1
127.0.0.1:6379> hexists student1 sex
(integer) 0
127.0.0.1:6379> 

在这里插入图片描述

hincrby命令

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

127.0.0.1:6379> hincrby student1 age 2
(integer) 20
127.0.0.1:6379> hincrby student1 username 2
(error) ERR hash value is not an integer
127.0.0.1:6379> 

在这里插入图片描述

hincrbyfloat命令

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

127.0.0.1:6379> hincrbyfloat student1 age 2.2
"22.2"
127.0.0.1:6379> hincrbyfloat student1 username 2.2
(error) ERR hash value is not a float
127.0.0.1:6379> 

在这里插入图片描述

hlen命令

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

127.0.0.1:6379> hlen student1
(integer) 3
127.0.0.1:6379> hkeys student1
1) "username"
2) "password"
3) "age"
127.0.0.1:6379> 

在这里插入图片描述

hstrlen

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

127.0.0.1:6379> hgetall student1
1) "username"
2) "zhangsan"
3) "password"
4) "123"
5) "age"
6) "22.2"
127.0.0.1:6379> hstrlen student1 username
(integer) 8
127.0.0.1:6379> hstrlen student1 password
(integer) 3
127.0.0.1:6379> hstrlen student1 age
(integer) 4
127.0.0.1:6379> 

在这里插入图片描述

相关文章:

  • 太仓苏州网站建设/百度快速收录seo工具软件
  • 福建建设执业资格中心网站/郑州网站建设外包
  • wordpress用户留言插件/网站推广的意义和方法
  • b2b 网站制作/长沙网络推广平台
  • app开发怎么赚钱/优化电脑的软件有哪些
  • 公司官网源码下载/重庆seo标准
  • C++实现简易Docker容器——第一讲基础入门
  • 【MATLAB教程案例24】基于matlab的有参图像质量评价仿真与分析,包括MSE,PSNR,NK,AD,SC,MD,NAE
  • 开发板移植RTOS操作系统,RTOS操作系统适配开发板整理大全
  • LALR(1)分析方法
  • java数组的总结
  • linux调试程序常用的几个工具和命令
  • 【漏洞复现-splunk-信息泄露】vulfocus/splunk-cve_2018_11409
  • 15 个实用的 Linux find 命令示例
  • 一周一总结
  • Hadoop 3.x(MapReduce)----【MapReduce 框架原理 五】
  • 实验三.局域网的组建
  • 【C++】打怪升级——通关类和对象(下)