【Redis】10大数据类型之Hash类型

devtools/2024/9/21 15:52:02/

文章目录

  • 1.Hash类型
  • 2.常用命令
  • 3.示例
    • hset和hget
    • hgetall
    • hlen
    • hkeys和hvals
    • hexists
    • hdel
    • hincrby和hincrbyfloat
    • hsetnx

1.Hash类型

Redis中的Hash类型是一种高效的数据结构,用于存储键值对的集合。这种类型特别适用于表示对象,因为它允许你将对象的多个属性(fields)作为单独的条目存储在同一个键(key)之下。

简单来说就是,Redis的数据是键值对形式(key value)的. 而Hash类型的值(value)也是键值对(fields value)形式的.
因此hash类型的值是key fields value [fields value]这种形式的. 类似于Java中的Map<String,Map<Object,Object>>

2.常用命令

  • HSET key field value:设置field对应的值。如果field已存在则更新,否则创建。
  • HGET key field:获取指定field的值。
  • HGETALL key:获取该key下所有field及其对应的值。
  • HLEN key:返回该key下field的数量。
  • HKEYS key:获取该key下所有field。
  • HVALS key:获取该key下所有field的值。
  • HEXISTS key field:检查field是否存在。
  • HDEL key field [field ...]:删除一个或多个field。
  • HINCRBY key field increment:将哈希表中field字段的值增加指定的整数值increment
  • HINCRBYFLOAT key field increment: 与HINCRBY类似,但是increment可以是浮点数,即支持对哈希表中field字段的值进行浮点数的原子性递增。
  • HSETNX key field value:只有当field不存在时才设置其值。

3.示例

以下是一些命令的使用示例:

hset和hget

HSET key field value:设置field对应的值。如果field已存在则更新,否则创建。

HGET key field:获取指定field的值。

127.0.0.1:6379> hset user1 name zhangsan age 18
(integer) 2
127.0.0.1:6379> hget user1 name
"zhangsan"
127.0.0.1:6379> hget user1 age
"18"
127.0.0.1:6379> 

hgetall

HGETALL key:获取该key下所有field及其对应的值。

127.0.0.1:6379> hgetall user1
1) "name"
2) "zhangsan"
3) "age"
4) "18"
127.0.0.1:6379> 

hlen

HLEN key:返回该key下field的数量。

127.0.0.1:6379> hlen user1
(integer) 2
127.0.0.1:6379> 

hkeys和hvals

HKEYS key:获取该key下所有field。

HVALS key:获取该key下所有field的值。

127.0.0.1:6379> hkeys user1
1) "name"
2) "age"
127.0.0.1:6379> hvals user1
1) "zhangsan"
2) "18"
127.0.0.1:6379> 

hexists

HEXISTS key field:检查field是否存在。存在返回1,不存在返回0

127.0.0.1:6379> hkeys user1
1) "name"
2) "age"
127.0.0.1:6379> hexists user1 name
(integer) 1
127.0.0.1:6379> hexists user1 email
(integer) 0

hdel

HDEL key field [field ...]:删除一个或多个field。

127.0.0.1:6379> hkeys user1
1) "name"
2) "age"
127.0.0.1:6379> hdel user1 name
(integer) 1
127.0.0.1:6379> hkeys user1
1) "age"
127.0.0.1:6379> 

hincrby和hincrbyfloat

HINCRBY key field increment:将哈希表中field字段的值增加指定的整数值increment

HINCRBYFLOAT key field increment: 与HINCRBY类似,但是increment可以是浮点数,即支持对哈希表中field字段的值进行浮点数的原子性递增。

127.0.0.1:6379> hgetall user1
1) "age"
2) "18"
3) "name"
4) "lisi"
5) "score"
6) "55.5"
127.0.0.1:6379> hincrby user1 age 1
(integer) 19
127.0.0.1:6379> hincrby user1 age -2 # 可以是负数
(integer) 17
127.0.0.1:6379> hincrbyfloat user1 score 0.5
"56"
127.0.0.1:6379> hincrbyfloat user1 score -1.5 # 可以是负数
"54.5"
127.0.0.1:6379> 

hsetnx

HSETNX key field value:只有当field不存在时才设置其值。

127.0.0.1:6379> hgetall user1
1) "age"
2) "17"
3) "name"
4) "lisi"
5) "score"
6) "54.5"
127.0.0.1:6379> hsetnx user1 age 22
(integer) 0
127.0.0.1:6379> hsetnx user1 phone 123123
(integer) 1
127.0.0.1:6379> 

http://www.ppmy.cn/devtools/34228.html

相关文章

开发日记-npm下载镜像超时,切换镜像源方式

使用npm下载组件和初始化等操作的时候可能会遇到下面的问题&#xff1a; npm ERR! Exit handler never called! npm ERR! This is an error with npm itself. Please report this error at: npm ERR! <https://github.com/npm/cli/issues> npm ERR! A complete log of t…

Linux内核--设备驱动(六)媒体驱动框架整理一--音频

目录 一、引言 二、ALSA ------>2.1、alsa声卡设备 ------>2.2、内部实现 ------------>2.2.1、usb通讯配置 ------------>2.2.2、midi设备创建 ------------>2.2.3、创建pcm设备 ------------>2.2.4、创建 control 设备 ------------>2.2.5、声…

Python基础详解一

一&#xff0c;print打印 print("hello word") print(hello word) 双引号和单引号都可以 二&#xff0c;数据类型 Python中常用的有6种值的类型 输出类型信息 print(type(11)) print(type("22")) print(type(22.2)) <class int> <class str&…

如何利用单声道音频进行说话人距离估计

音频中的距离估算在各种应用中扮演着关键角色&#xff0c;例如声学场景分析、声源定位和房间建模。大多数研究主要集中在采用分类方法&#xff0c;将距离离散化为不同的类别&#xff0c;这样虽然可以让模型训练更平滑&#xff0c;提高精度&#xff0c;但限制了获得的声源位置的…

STC单片机和串口触摸屏自由通讯协议

/*------------------主循环程序----------------*/ void main( ) /*主程序开始*/ { /**加一**/ P0M00XFF; //推挽输出 P0M…

AEC Capital Limited:开启可持续金融新纪元

在当今社会&#xff0c;环保和可持续发展已成为全球关注的焦点。在这个背景下&#xff0c;AEC Capital Limited作为香港的一家金融服务公司&#xff0c;以其专业、高端的服务和创新的理念&#xff0c;成为可持续金融领域的引领者。我们致力于将环境保护与金融服务相结合&#x…

css基础之显示模式、背景、三大特性

显示模式、背景 一、元素显示模式 1.块级元素 独占一行&#xff0c;例如div,p&#xff0c;hr,h1-h6,ul,ol,form,table 可以设置高度宽度&#xff0c;外边距&#xff0c;内边距 宽度默认容器宽度 里面可以放行内或块级元素 注意&#xff1a; 文字类元素不能使用块级元素 <…

[ARM系列]coresight(一)

原文链接 目的&#xff1a;对复杂SOC实现debug和trace的架构 典型环境 包含&#xff1a;2个ARM core&#xff0c;一个DSP&#xff0c;众多coresight组件 coresight组件实现对core、DSP的debug和trace功能 环境中包含3个通路 trace通路&#xff1a;将core和DSP内部信息输出到…