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

【redis】哈希类型详解

哈希类型详解

    • 一、哈希类型的介绍
    • 二、哈希类型的常用命令
      • 2.1 HSET
      • 2.2 HGET
      • 2.3 HEXISTS
      • 2.4 HDEL
      • 2.5 HKEYS
      • 2.6 HAVLS
      • 2.7 HGETALL
      • 2.8 HMGET
      • 2.9 HLEN
      • 2.10 HSETNX
      • 2.11 HINCRBY
      • 2.12 HINCRBYFLOAT
    • 三、哈希类型命令小结
    • 四、哈希类型内部编码
    • 五、哈希类型应用场景

一、哈希类型的介绍

⼏乎所有的主流编程语⾔都提供了哈希(hash)类型,它们的叫法可能是哈希、字典、关联数组、映射。在 Redis 中,哈希类型是指值本⾝⼜是⼀个键值对结构,形如 key = “key”,value = { { field1, value1 }, …, {fieldN, valueN } },Redis 键值对和哈希类型⼆者的关系可以⽤下图表示

字符串和哈希类型对⽐ :

在这里插入图片描述

哈希类型中的映射关系通常称为 field-value,⽤于区分 Redis 整体的键值对(key-value),注意这⾥的 value 是指 field 对应的值,不是键(key)对应的值,请注意 value 在不同上下⽂的作⽤

二、哈希类型的常用命令

2.1 HSET

设置 hash 中指定的字段(field)的值(value)

语法:

HSET key field value [field value ...]

返回值:添加的字段的个数

使用示例:

127.0.0.1:6379> hset key field 'hello'
(integer) 1
127.0.0.1:6379> hget key field
"hello"

2.2 HGET

获取 hash 中指定字段的值

语法:

HGET key field

返回值:字段对应的值或者 nil

使用示例:

127.0.0.1:6379> hset key field 'foo'
(integer) 1
127.0.0.1:6379> hget key field
"foo"
127.0.0.1:6379> hget key field1
(nil)

2.3 HEXISTS

判断 hash 中是否有指定的字段

语法:

HEXISTS key field

返回值:1 表⽰存在,0 表⽰不存在

使用示例:

127.0.0.1:6379> hset key field 'foo'
(integer) 1
127.0.0.1:6379> hexists key field
(integer) 1
127.0.0.1:6379> hexists key field1
(integer) 0

2.4 HDEL

删除 hash 中指定的字段

语法:

HDEL key field [field ...]

返回值:本次操作删除的字段个数

使用示例:

127.0.0.1:6379> hset key field 'foo'
(integer) 1
127.0.0.1:6379> hdel key field
(integer) 1
127.0.0.1:6379> hdel key field1
(integer) 0

2.5 HKEYS

获取 hash 中的所有字段

语法:

HKEYS key

返回值:字段列表

使用示例:

27.0.0.1:6379> hset key field 'hello'
(integer) 1
127.0.0.1:6379> hset key field2 'world'
(integer) 1
127.0.0.1:6379> hkeys key
1) "field"
2) "field2"

2.6 HAVLS

获取 hash 中的所有的值

语法:

HVALS key

返回值:所有的值

使用示例:

127.0.0.1:6379> hset key field 'hello'
(integer) 1
127.0.0.1:6379> hset key field2 'world'
(integer) 1
127.0.0.1:6379> hvals key
1) "hello"
2) "world"

2.7 HGETALL

获取 hash 中的所有字段以及对应的值

语法:

HGETALL key

返回值:字段和对应的值

使用示例:

127.0.0.1:6379> hset key field 'hello'
(integer) 1
127.0.0.1:6379> hset key field2 'world'
(integer) 1
127.0.0.1:6379> hgetall key
1) "field"
2) "hello"
3) "field2"
4) "world"

在使⽤ HGETALL 时,如果哈希元素个数⽐较多,会存在阻塞 Redis 的可能。如果开发⼈员只需要获取部分 field,可以使⽤ HMGET,如果⼀定要获取全部 field,可以尝试使⽤ HSCAN 命令,该命令采⽤渐进式遍历哈希类型,HSCAN 会在后续介绍

2.8 HMGET

⼀次获取 hash 中多个字段的值

语法:

HMGET key field [field ...]

返回值:字段对应的值或者 nil

使用示例:

127.0.0.1:6379> hset key field 'hello'
(integer) 1
127.0.0.1:6379> hset key field2 'world'
(integer) 1
127.0.0.1:6379> hmget key field field2 nofield
1) "hello"
2) "world"
3) (nil)

2.9 HLEN

获取 hash 中的所有字段的个数

语法:

HLEN key

返回值:字段个数

使用示例:

127.0.0.1:6379> hset key field 'hello'
(integer) 1
127.0.0.1:6379> hset key field2 'world'
(integer) 1
127.0.0.1:6379> hlen key
(integer) 2

2.10 HSETNX

在字段不存在的情况下,设置 hash 中的字段和值

语法:

HSETNX key field value

返回值:1 表⽰设置成功,0 表⽰失败

使用示例:

127.0.0.1:6379> hsetnx key field 'hello'
(integer) 1
127.0.0.1:6379> hsetnx key field 'world'
(integer) 0
127.0.0.1:6379> hget key field
"hello"

2.11 HINCRBY

将 hash 中字段对应的数值添加指定的值

语法:

HINCRBY key field increment

返回值:该字段变化之后的值

使用示例:

127.0.0.1:6379> hset key field 5
(integer) 1
127.0.0.1:6379> hincrby key field 1
(integer) 6
127.0.0.1:6379> hincrby key field -1
(integer) 5
127.0.0.1:6379> hincrby key field -10
(integer) -5

2.12 HINCRBYFLOAT

HINCRBY 的浮点数版本

语法:

HINCRBYFLOAT key field increment

返回值:该字段变化之后的值

使用示例:

127.0.0.1:6379> hset key field 10.00
(integer) 1
127.0.0.1:6379> hincrbyfloat key field 0.1
"10.1"
127.0.0.1:6379> hincrbyfloat key field -5
"5.1"
127.0.0.1:6379> hset key field 5.0e3
(integer) 0
127.0.0.1:6379> hincrbyfloat key field 2.0e2
"5200"

三、哈希类型命令小结

命令执⾏效果时间复杂度
hset key field value设置值O(1)
hget key field获取值O(1)
hdel key field [field …]删除 fieldO(k), k 是 field 个数
hlen key计算 field 个数O(1)
hgetall key获取所有的 field-valueO(k), k 是 field 个数
hmget field [field …]批量获取 field-valueO(k), k 是 field 个数
hmset field value [field value …]批量获取 field-valueO(k), k 是 field 个数
hexists key field判断 field 是否存在O(1)
hkeys key获取所有的 fieldO(k), k 是 field 个数
hvals key获取所有的 valueO(k), k 是 field 个数
hsetnx key field value设置值,但必须在 field 不存在时才能设置成功O(1)
hincrby key field n对应 field-value +nO(1)
hincrbyfloat key field n对应 field-value +nO(1)
hstrlen key field计算 value 的字符串⻓度O(1)

四、哈希类型内部编码

哈希的内部编码有两种:

  • ziplist(压缩列表):当哈希类型元素个数⼩于 hash-max-ziplist-entries 配置(默认 512 个),同时所有值都⼩于 hash-max-ziplist-value 配置(默认 64 字节)时,Redis 会使⽤ ziplist 作为哈希的内部实现,ziplist 使⽤更加紧凑的结构实现多个元素的连续存储,所以在节省内存⽅⾯⽐ hashtable 更加优秀
  • hashtable(哈希表):当哈希类型⽆法满⾜ ziplist 的条件时,Redis 会使⽤ hashtable 作为哈希的内部实现,因为此时 ziplist 的读写效率会下降,⽽ hashtable 的读写时间复杂度为 O(1)

hash-max-ziplist-entries :这个参数用于设置压缩列表可以存储的最大节点数量。如果一个 Hash 类型的元素数量超过这个值,那么就会从压缩列表切换到散列表。默认值为 512

hash-max-ziplist-value:这个参数用于设置压缩列表中每个节点的最大值大小(以字节为单位)。如果一个 Hash 类型的任何元素的大小超过这个值,那么就会从压缩列表切换到哈希表。默认值为 64

从压缩列表转换到哈希表的条件:当 Hash 类型存储的字段和值的数量超过 hash-max-ziplist-entries 的值,或者任何字段或值的大小超过 hash-max-ziplist-value 的值时,Redis 会将底层结构从压缩列表转换为哈希表。这个过程是自动进行的,对用户来说是透明的,压缩列表转换为哈希表是单向的,不可逆

下面演示这两种类型:

①当 field 个数⽐较少且没有⼤的 value 时,内部编码为 ziplist:

127.0.0.1:6379> hmset hashkey f1 v1 f2 v2
OK
//查看哈希内部编码类型
127.0.0.1:6379> object encoding hashkey
"ziplist"

②当有 value ⼤于 64 字节时,内部编码会转换为 hashtable:

127.0.0.1:6379> hset hashkey f3 "one string is bigger than 64 bytes ... "
OK
127.0.0.1:6379> object encoding hashkey
"hashtable"

③当 field 个数超过 512 时,内部编码也会转换为 hashtable:

127.0.0.1:6379> hmset hashkey f1 v1 h2 v2 f3 v3 ... 省略 ... f513 v513
OK
127.0.0.1:6379> object encoding hashkey
"hashtable"

五、哈希类型应用场景

Redis 的 Hash 类型是一种键值对集合,适合用于存储对象,因此在很多场景下都有着广泛的应用。以下是一些常见的应用场景:

  1. 存储对象:Hash 类型可以存储多个键值对,非常适合用于存储对象。例如,你可以使用 Hash 类型存储用户的信息,如用户名、密码、邮箱等;
  2. 数据分析:你可以使用 Hash 类型存储各种统计数据,例如用户的行为数据,然后进行数据分析;
  3. 社交网络:在社交网络应用中,你可以使用 Hash 类型存储用户的朋友列表、粉丝列表等

相关文章:

【redis】哈希类型详解

哈希类型详解 一、哈希类型的介绍二、哈希类型的常用命令2.1 HSET2.2 HGET2.3 HEXISTS2.4 HDEL2.5 HKEYS2.6 HAVLS2.7 HGETALL2.8 HMGET2.9 HLEN2.10 HSETNX2.11 HINCRBY2.12 HINCRBYFLOAT 三、哈希类型命令小结四、哈希类型内部编码五、哈希类型应用场景 一、哈希类型的介绍 …...

每日练题之动态规划(子序列问题讲解 1.最长递增子序列 2.摆动序列)

前言: 需要对「子序列」和「子数组」这两个概念进行区分; 子序列(subsequence):子序列并不要求连续,但是我们调出来的顺序必须和原数组的顺序相同。例如:序列 [4, 6, 5] 是 [1, 2, 4, 3, 7, 6,…...

JSON 性能测试 - WastJson 性能也很快

WAST 是一个高性能 Java 工具集库包,包括 JSON、YAML、CSV、HttpClient、JDBC 和 EL 引擎. WastJson 无论是小中大文本各种数据类型等性能都没有明显的短板,除了推广外可以说是六边形战士,更多测试参考 wast-jmh-test: wast性能测试 (并非所…...

Windows 软件之 FFmpeg

文章目录 前言1 FFmpeg 视频处理1.1 编解码1.2 其它视频编辑命令1.3 视频抽帧 2 FFmpeg 音频处理3 FFmpeg 图片处理3.1 编解码3.2 拼接图片3.3 图片合成视频 附录1:mediainfo.ps1 前言 FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的…...

接口的扩展

1. 接口中新增的方法 JDK7之前接口中只能定义抽象方法。 JDK8的新特性:接口中可以定义有方法体的方法。(默认、静态) JDK9的新特性:接口中可以定义有私有方法体的方法。 有方法体的方法:接口升级时,为了兼容…...

Vue ECharts 基本数据图表绘制详解:让数据飞起来

1. 引言 1.1 什么是数据可视化 大家好,欢迎来到数据可视化的世界!如果你以为数据就是冷冰冰的数字,那你就大错特错了。数据,可是有灵魂的!只要给它一副好看的外衣,比如我们今天要聊的图表,它们…...

目录遍历漏洞-CVE-2021-41773

目录 简介 原理 例子 Apache路径穿越漏洞 环境搭建 漏洞原理 漏洞利用 简介 目录遍历漏洞(也称为路径遍历漏洞)是一种由于Web服务器或Web应用程序对用户输入的文件名称的安全性验证不足而导致的安全漏洞。 原理 目录遍历漏洞允许攻击者在未授权…...

ajax (一)

什么是 AJAX [ˈeɪdʒks] ? 概念:AJAX是浏览器与服务器进行 数据通信 的技术,动态数据交互 怎么用AJAX? 1. 先使用 axios [k‘sio ʊ s] 库, 与服务器进行 数据通信 ⚫ 基于 XMLHttpRequest 封装、代码简单、月下载量在 1…...

cocos creator 3.8 物理碰撞器Collider+刚体RigidBody 8

遇到一个朋友,你来就行的朋友,我过去了,管吃管住,这样的朋友真的很难求。 最近离职了,很难想象,一份策划书一天能给你改n次,一周能郁闷,上一个功能没搞完,让你搞下一个功…...

[Python3学习笔记-基础语法] Python3 基础语法

本篇文章详细介绍Python3的基础语法,主要包括编码、标识符、Python保留字、注释、行缩进、多行语句、Number类型、字符串、空行、print打印等。 这些是Python最基础的东西,掌握好了才能更好的学习后续的内容。 有兴趣共同结伴学习Python的朋友&#xff0…...

自制游戏:监狱逃亡

第一个游戏&#xff0c;不喜勿喷&#xff1a; ​ #include<bits/stdc.h> #include<windows.h> using namespace std; int xz; int ruond_1(int n){if(xz1){printf("撬开了&#xff0c;但站在你面前的是俄罗斯内务部特种部队的奥摩大帝&#xff0c;你被九把加…...

Linux的开发工具(三)

条件编译 预处理本质&#xff1a;对代码进行裁剪 像网易云音乐有vip和普通用户&#xff0c;可以通过条件编译来&#xff0c;这样只用写一份代码&#xff0c;也只用维护一份代码&#xff0c;是vip就走vip代码&#xff0c;不是就普通用户代码&#xff0c;条件编译来动态裁剪。 …...

飞书会话消息左右排列

飞书会话消息左右排列 1. 飞书登录后&#xff0c;点击头像&#xff0c;弹出菜单有个按钮设置 2. 3....

【数据结构-表达式解析】力扣227. 基本计算器 II

给你一个字符串表达式 s &#xff0c;请你实现一个基本计算器来计算并返回它的值。 整数除法仅保留整数部分。 你可以假设给定的表达式总是有效的。所有中间结果将在 [-231, 231 - 1] 的范围内。 注意&#xff1a;不允许使用任何将字符串作为数学表达式计算的内置函数&#…...

vue2面试题10|[2024-11-24]

问题1&#xff1a;vue设置代理 如果你的前端应用和后端API服务器没有运行在同一个主机上&#xff0c;你需要在开发环境下将API请求代理到API服务器。这个问题可以通过vue.config.js中的devServer.proxy选项来配置。 1.devServer.proxy可以是一个指向开发环境API服务器的字符串&…...

列表和字典索引的区别

对于 列表&#xff1a; 索引是自动生成的&#xff0c;由 Python 内部管理。你不能直接为列表中的某个元素设置“自定义索引”。 对于 字典&#xff1a; 键是完全由用户定义的。你可以通过 字典【键】 值 的方式主动创建或更新键值对。 lst [a, b, c] lst[0] x # 修改已…...

【源码】Sharding-JDBC源码分析之SQL中分片键路由ShardingSQLRouter的原理

Sharding-JDBC系列 1、Sharding-JDBC分库分表的基本使用 2、Sharding-JDBC分库分表之SpringBoot分片策略 3、Sharding-JDBC分库分表之SpringBoot主从配置 4、SpringBoot集成Sharding-JDBC-5.3.0分库分表 5、SpringBoot集成Sharding-JDBC-5.3.0实现按月动态建表分表 6、【…...

JavaFX 实现 Loading 效果的组件与案例详解

JavaFX 中的 Loading 组件概述 JavaFX 提供了两个用于显示任务进度的核心组件&#xff1a; ProgressIndicator&#xff1a;以圆形动画的形式展示任务进度&#xff0c;适用于未定义进度的任务。ProgressBar&#xff1a;以水平条的形式展示任务进度&#xff0c;适用于可以量化进…...

Elasticsearch:如何部署文本嵌入模型并将其用于语义搜索

你可以按照这些说明在 Elasticsearch 中部署文本嵌入模型&#xff0c;测试模型并将其添加到推理提取管道。它使你能够生成文本的向量表示并对生成的向量执行向量相似性搜索。示例中使用的模型在 HuggingFace上公开可用。 该示例使用来自 MS MARCO Passage Ranking Task 的公共…...

李继刚:提示词(Prompt)的本质是表达的艺术

看了李继刚在 AI 创新者大会的演讲《提示词的道与术》&#xff0c;收获很大&#xff0c;我分享一下学习笔记。  李继刚&#xff1a;提示词&#xff08;Prompt&#xff09;的本质是表达的艺术 一、提示词的本质是表达 本意、文意和解意的概念&#xff1a; 本意&#xff1a;指…...

10 —— Webpack打包模式

开发模式&#xff1a;development &#xff1b;场景&#xff1a;本地开发 生产模式&#xff1a;production &#xff1b; 场景&#xff1a;打包上线 这两种模式如何设置给webpack&#xff1a; 方式1.webpack.config.js 配置文件设置mode选项 module.exports { mode:produc…...

OpenSSH 安装

OpenSSH windows安装 启用可选功能安装 OpenSSH&#xff08;推荐方法&#xff09; 步骤一&#xff1a;打开 “设置” 应用 点击 “开始” 菜单&#xff0c;选择 “设置” 图标&#xff08;看起来像一个齿轮&#xff09;。 步骤二&#xff1a;进入 “应用” 部分 在设置窗口中&…...

国标GB28181设备管理软件EasyGBS国标GB28181视频平台:RTMP和GB28181两种视频上云协议的区别

在当今信息化高速发展的社会中&#xff0c;视频监控技术已经成为各行各业不可或缺的一部分。无论是城市安全、交通管理&#xff0c;还是企业安全、智能家居&#xff0c;视频监控都发挥着至关重要的作用。然而&#xff0c;随着监控点数量的急剧增加&#xff0c;海量视频数据的存…...

Image fusion meets deep learning: A survey and perspective译文

摘要 图像融合是指从不同的源图像中提取和组合最有意义的信息&#xff0c;旨在生成一个更有信息量和有利于后续应用的单图像。深度学习的发展极大地推动了图像融合的发展&#xff0c;而神经网络强大的特征提取和重建能力使融合结果充满希望。最近&#xff0c;几种最新的深度学…...

多维高斯分布的信息熵和KL散度计算

多维高斯分布是一种特殊的多维随机分布&#xff0c;应用非常广泛&#xff0c;很多现实问题的原始特征分布都可以看作多维高斯分布。本文以数据特征服从多维高斯分布的多分类任务这一理想场景为例&#xff0c;从理论层面分析数据特征和分类问题难度的关系注意&#xff0c;本文分…...

物体网格弹性变形---Unity中实现

在游戏引擎场景中的3D物体是由一定数量的点、面组成的&#xff0c;如下图&#xff1a; 要使这些物体变形就是改变3D物体每个顶点状态。 1.首先在Unity场景中增加一个球体&#xff0c;如下图 3D组件默认拥有MeshFilter、meshRenderer、Collider组件&#xff0c;分别用来获取Mes…...

什么是Sass,有什么特点

Sass 概述 什么是 Sass&#xff1f; Sass&#xff08;Syntactically Awesome Style Sheets&#xff09;是一种 CSS 预处理器&#xff0c;它扩展了 CSS 的功能&#xff0c;使其更加强大和灵活。Sass 允许开发者使用变量、嵌套规则、混合宏、继承等高级特性&#xff0c;从而编写…...

Spring注入Map学习

Spring注入Map学习 在Spring中 在策略模式中, 会经常用到 根据Bean名称获取Bean的实例 有2个方法很好用 1. 使用Autowired注入 2. 使用构造方法注入 但是奇怪的一点是: 日志打印并没有看到结果, 第一行的 Autowired的结果 是个null 那是因为 注入时机 的问题 注入时机&…...

Java 基础知识 (集合框架 + 并发编程 + JVM 原理 + 数据结构与算法)

文章目录 一.集合框架1. 常见集合接口及其特点List 接口Set 接口Map 接口 2. ArrayList 和 LinkedList 的区别和适用场景ArrayListLinkedList 3. HashSet 和 TreeSet 的特点和用法HashSetTreeSet 4. HashMap 和 TreeMap 的实现原理和使用注意事项HashMapTreeMap 5. 集合遍历方式…...

数据脱敏工具:基于 FFmpeg 的视频批量裁剪

在数据处理和隐私保护领域&#xff0c;数据脱敏是一项重要的任务&#xff0c;尤其是在处理包含敏感信息的视频数据时。本文介绍了一种使用 Python 和 FFmpeg 实现的视频批量裁剪工具&#xff0c;该工具可以将视频中的敏感区域裁剪掉&#xff0c;从而实现数据脱敏。通过使用 PyI…...

从零开始:使用 Spring Boot 开发图书管理系统

如何利用是springboot搭建一个简单的图书管理系统&#xff0c;下面让我们一起来看看吧 文章目录 项目结构1. 主类 LibraryApplication.java功能与注意事项&#xff1a; 2. 模型类 Book.java功能与注意事项&#xff1a; 3. 数据仓库接口 BookRepository.java功能与注意事项&…...

深入浅出:大数据架构中的流处理与实时分析

1. 引言 随着数据产生速度的不断加快,传统的批处理架构已经无法满足实时数据处理和快速响应的需求。流处理成为解决这一问题的关键技术之一,广泛应用于金融、互联网、物联网等领域。流处理技术能够处理不断到来的数据流,实时分析和反馈,使得系统能够迅速做出反应,提供实时…...

基于Multisim的汽车尾灯控制电路设计与仿真

1、电路由四个按键控制&#xff0c;分别对应左转、右转、刹车和检查。 2、当左转或右转键按下时,左侧或右侧的 3个汽车尾灯按照左循环或右循环的顺!2/3 点亮&#xff0c;点亮时间为 1秒。 3、当刹车时&#xff0c;所有的尾灯同时闪烁&#xff0c;闪烁时间为1秒。 4、当检查时…...

WebStorm 2024.3/IntelliJ IDEA 2024.3出现elementUI提示未知 HTML 标记、组件引用爆红等问题处理

WebStorm 2024.3/IntelliJ IDEA 2024.3出现elementUI提示未知 HTML 标记、组件引用爆红等问题处理 1. 标题识别elementUI组件爆红 这个原因是&#xff1a; 在官网说明里&#xff0c;才版本2024.1开始&#xff0c;默认启用的 Vue Language Server&#xff0c;但是在 Vue 2 项目…...

【大数据学习 | Spark-Core】详解分区个数

RDD默认带有分区的&#xff0c;那么创建完毕rdd以后他的分区数量是多少&#xff1f; 从hdfs读取文件的方式是最正规的方式&#xff0c;我们通过计算原理可以推出blk的个数和分区数量是一致的&#xff0c;本地化计算。 我们可以发现数据的读取使用的是textInputFormat&#xff…...

(二)Sping Boot学习——Sping Boot注意事项

1.springboot默认是扫描的类是在启动类的当前包或者下级包。 2.运行报错 ERROR&#xff1a;An incompatible version [1.2.33] of the Apache Tomcat Native library is installed, while Tomcat requires version [1.2.34] 网上试了很多方法&#xff0c;直接重新安装更新版…...

深入浅出,快速安装并了解汇编语言

1.什么是汇编语言 了解汇编语言需要先从了解机器语言开始&#xff0c;在计算机发展的初期阶段&#xff0c;机器语言是计算机直接理解和执行的二进制代码语言&#xff0c;其核心特点包括直接执行性、资源高效性、学习难度大以及平台依赖性。它主要由指令码构成&#xff0c;这些…...

LLM的原理理解6-10:6、前馈步骤7、使用向量运算进行前馈网络的推理8、注意力层和前馈层有不同的功能9、语言模型的训练方式10、GPT-3的惊人性能

目录 LLM的原理理解6-10: 6、前馈步骤 7、使用向量运算进行前馈网络的推理 8、注意力层和前馈层有不同的功能 注意力:特征提取 前馈层:数据库 9、语言模型的训练方式 10、GPT-3的惊人性能 一个原因是规模 大模型GPT-1。它使用了768维的词向量,共有12层,总共有1.…...

JavaScript中的箭头函数以及编写优化

箭头函数 1.1.1 箭头函数的概念 箭头函数时ES 6之后增加一种编写函数的方法&#xff0c;并且它比函数的表达式要更加简洁 箭头函数不会绑定this,arguments属性箭头函数不能作为构造函数来使用&#xff08;不能和new一起来使用&#xff0c;会出现错误&#xff09; //1.之前的方…...

Thymeleaf模板引擎生成的html字符串转换成pdf

依赖引入implementation("org.springframework.boot:spring-boot-starter-thymeleaf")implementation("org.xhtmlrenderer:flying-saucer-pdf")将ITemplateEngine注入到spring管理的类中&#xff0c; Context context new Context(); context.setVariable…...

Android 实现双列图片瀑布流式布局

Android 实现双列图片瀑布流式布局 实现双列图片瀑布流布局&#xff0c;关键在于 RecyclerView 的 StaggeredGridLayoutManager 和图片的动态加载。以下是实现步骤&#xff1a; 1. 添加必要依赖 使用 Glide 加载图片。确保在 build.gradle 中添加依赖&#xff1a; implement…...

运维Tips:Docker或K8s集群拉取Harbor私有容器镜像仓库配置指南

[ 知识是人生的灯塔,只有不断学习,才能照亮前行的道路 ] Docker与Kubernetes集群拉取Harbor私有容器镜像仓库配置 描述:在现在微服务、云原生的环境下,通常我们会在企业中部署Docker和Kubernetes集群,并且会在企业内部搭建Harbor私有镜像仓库以保证开发源码安全,以及加快…...

显示类控件

文章目录 1 QLabel1.1 常用属性1.2 例子1&#xff0c;设置文本 (textFormat)1.3 例子2&#xff0c;设置widget背景图片 (pixmap和scaledContents)1.4 例子3&#xff0c;设置对齐方式 (alignment)1.5 例子4&#xff0c;设置自动换行&#xff0c;缩进和边距1.5.1 设置换行 (wordW…...

AOC显示器915Sw按键失灵维修记

大家好&#xff0c;我是 程序员码递夫 今天给大家分享的是自己维修老古董AOC液晶显示器按键失灵的的过程&#xff0c;实属DIY记录。 1、引子 家里有台老古董的19寸AOC液晶显示器&#xff08;型号915Sw&#xff09;, 一直作为我的副显示器陪伴着左右&#xff0c;显示还正常&a…...

PyQt学习笔记

一.PyQt5的安装 当我们安装好开发环境后&#xff0c;打开pycharm在其设置里面点击按钮自动安装即可。 安装完成后我们会在这里面看到这几个东西说明安装成功了。 二.PyQt5 GUI程序框架 1.一个简单的PyQt5应用程序 首先我们用pycharm创建一个demo.py的文件。 我们创建文件为s…...

LLMops产品介绍

文章目录 字节跳动的扣子优点低代码开发丰富的插件与能力扩展强大的记忆与数据交互能力应用场景广泛 不足模型选择相对受限定制化程度受限输出效果有待提高应用部署范围有限市场认知度和用户基础不足 开悟大模型运营管理系统&#xff08;LLMOPS&#xff09;优点全生命周期管理降…...

【GPTs】Front-end Expert:助力前端开发的智能工具

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: AIGC | GPTs应用实例 文章目录 &#x1f4af;GPTs指令&#x1f4af;前言&#x1f4af; Front-end Expert主要功能适用场景优点缺点 &#x1f4af;小结 &#x1f4af;GPTs指令 中文翻译&#xff1a; 使用Dalle生成用户…...

一篇保姆式centos/ubuntu安装docker

前言&#xff1a; 本章节分别演示centos虚拟机&#xff0c;ubuntu虚拟机进行安装docker。 上一篇介绍&#xff1a;docker一键部署springboot项目 一&#xff1a;centos 1.卸载旧版本 yum remove docker docker-client docker-client-latest docker-common docker-latest doc…...

人工智能大趋势下软件开发的未来

随着人工智能&#xff08;AI&#xff09;技术的不断演进&#xff0c;软件开发领域正经历着深刻的变革。中国电信推出的星辰大模型软件工厂&#xff0c;作为国内首款破局性AI开发工具&#xff0c;其全自动流水线的特性——自动生成前后端代码、自主测试和纠错等&#xff0c;为软…...

string的模拟实现

string的模拟实现 一.string的模拟实现1.1构造函数和析构函数&#xff0c;以及一些简单函数1.2迭代器1.3增删查改 二.运算符重载三.流插入和流提取 一.string的模拟实现 string本质上是是一种char类型的顺序表&#xff0c;结构上和顺序表相似。 namespace Mystring {class st…...