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

使用Java操作Redis


文章目录

  • 常用Redis键操作命令
  • 使用Java操作Redis
    • 配置 Redis 连接信息
    • 创建 Maven 项目结构
  • 操作字符串
  • 操作列表
  • 操作集合
  • 操作散列
  • 操作有序集合
  • 总结


报错解决办法:
在这里插入图片描述
当使用redis-cli连接客户端出现not connected
使用redis-cli -h 192.168.222.101 -p 6379即可解决

常用Redis键操作命令

1.SET命令–为指定键设置值

set key value [expiration EX seconds|PX milliseconds] [NX|XX]

2.MSET命令–给多个键设置值

mset key value [key value ...]

3.KEYS命令–查找符合给定模式pattern的键

keys pattern

4.GET命令–获取指定键的值

get key

5.MGET命令–获得多个键的值

mget key [key ...]

6.DUMP命令–序列化指定的键,并返回序列化的值

dump key

7.EXISTS命令–判断指定键是否存在

exists key [key ...]

8.TYPE命令–查看指定键的类型

type key

9.RENAME命令–修改指定键的名称

rename key newkey

10.EXPIRE命令–设置键的生存时间

expire key seconds

11.TTL命令–查看指定键的剩余设置时间

ttl key

12.PERSIST命令–移除指定键的生存时间

persist key

13.DEL命令–删除指定键

del key [key ...]

使用Java操作Redis

1、运行命令:firewall-cmd --get-active-zones
2、执行如下命令命令:firewall-cmd --zone=public --add-port=6379/tcp --permanent
3、重启防火墙,运行命令:firewall-cmd --reload
4、查看端口号是否开启,运行命令:firewall-cmd --query-port=6379/tcp
做完以上操作 就会把CentOS的防火墙打开6379的端口
在这里插入图片描述

配置 Redis 连接信息

确保您的 Redis 服务器配置允许远程连接:

  1. 编辑 Redis 配置文件 /etc/redis/redis.conf,将 bind 127.0.0.1 修改为 bind 0.0.0.0,或者添加您的服务器 IP
  2. 注释掉 protected-mode yes 或设置为 protected-mode no
    在这里插入图片描述
    接着启动Redis 启动教程
    java连接linux中的redis:

创建 Maven 项目结构

首先,创建一个标准的 Maven 项目结构:

my-redis-project/
├── pom.xml
└── src/└── main/└── java/└── com.redistest/└── Test.java

配置 pom.xml 文件
创建一个包含 Jedis 依赖的 pom.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.example</groupId><artifactId>redis-demo</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><!-- Redis Java Client --><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>4.3.1</version></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source><target>1.8</target></configuration></plugin><!-- 添加Maven Exec插件,用于直接运行主类 --><plugin><groupId>org.codehaus.mojo</groupId><artifactId>exec-maven-plugin</artifactId><version>3.1.0</version><configuration><mainClass>com.example.Test</mainClass></configuration></plugin></plugins></build>
</project>

更新一下maven:
在这里插入图片描述
test测试连接文件:

package com.redistest;
import redis.clients.jedis.Jedis;public class test {private static Jedis jedis=new Jedis("192.168.222.101",6379);public static void main(String[] args) {System.out.println("redis start..."+jedis.ping());}
}

结果出现:
在这里插入图片描述
至此,您已经成功连接到Redis服务器了!

当然,从设置-插件中也有redis的可视化插件:
在这里插入图片描述
第一个收费,有30天免费体验
第二个免费
在这里插入图片描述
在这里插入图片描述

操作字符串

创建TestString.java文件
(1)获取指定字符串键的旧值并设置新值

@Test
public void getsetTest(){String oldValue =jedis.getset("brand1","itcast");System.out.println(oldValue);
}

(2)获取字符串键指定索引范围的值内容。

@Test
public void getrangeTest(){String value =jedis.getrange("brand6",4,7);System.out.println(value);
}

操作列表

创建TestList.java文件,
(1)将一个或多个元素推入到列表中

    @Testpublic void rpushAndLpushrest() {//将5个元素推人列表 color的右端Long rpush = jedis.rpush("color", "green", "black", "purple", "white", "blue");// 将2个元素推人列表 color的左端Long lpush = jedis.lpush("color", "pink", "red");System.out.println(rpush + "-----" + lpush);}

(2)获取列表中元素的个数

    public void lrangeTest() {List<String> values = jedis.lrange("color", 0, 6);for (String value : values) {System.out.println(value);}}

(3)移除列表的指定元素。

    public void lremTest () {Long ll = jedis.lrem("color", 1, "red");System.out.println(ll);}

实现完整代码:

package com.redistest;
import redis.clients.jedis.Jedis;
import java.util.List;
public class TestList {private static Jedis jedis = new Jedis("192.168.222.101", 6379);public static void main(String[] args) {System.out.println("服务启动..." + jedis.ping());// 调用测试方法TestList test = new TestList();test.rpushAndLpushrest();test.lrangeTest();test.lremTest();}public void rpushAndLpushrest() {//将5个元素推人列表 color的右端Long rpush = jedis.rpush("color", "green", "black", "purple", "white", "blue");// 将2个元素推人列表 color的左端Long lpush = jedis.lpush("color", "pink", "red");System.out.println(rpush + "-----" + lpush);}public void lrangeTest() {List<String> values = jedis.lrange("color", 0, 6);for (String value : values) {System.out.println(value);}}public void lremTest () {Long ll = jedis.lrem("color", 1, "red");System.out.println(ll);}}

在这里插入图片描述

操作集合

创建TestSet.java文件
(1)将一个或多个元素添加到集合中

    public void saddTest() {Long result = jedis.sadd("databases", "mongodb", "redis", "hbase");System.out.println(result);}

(2)获取集合中的所有元素

    public void smembersTest () {Set<String> databases = jedis.smembers("databases");Iterator<String> database = databases.iterator();while (database.hasNext()) {String db = database.next();System.out.println(db);}}

(3)移除集合中一个或多个已经存在的元素。

public void sremTest() {Long result = jedis.srem("databases", "hbase");System.out.println(result);
}

实现完整代码:

package com.redistest;
import redis.clients.jedis.Jedis;
import java.util.Iterator;
import java.util.Set;
public class TestSet {private static Jedis jedis = new Jedis("192.168.222.101", 6379);public static void main(String[] args) {System.out.println("服务启动..."+jedis.ping());// 调用测试方法TestSet test = new TestSet();test.saddTest();test.smembersTest();test.sremTest();}public void saddTest() {Long result = jedis.sadd("databases", "mongodb", "redis", "hbase");System.out.println(result);}public void smembersTest () {Set<String> databases = jedis.smembers("databases");Iterator<String> database = databases.iterator();while (database.hasNext()) {String db = database.next();System.out.println(db);}}public void sremTest() {Long result = jedis.srem("databases", "hbase");System.out.println(result);}
}

操作散列

创建TestHash.java文件,
(1)为散列中多个键设置值

@Test
public void hmsetTest ()Map<String,String>map =new HashMap<>()map.put ("content","hello world");map.put ("author","Peter");String hash =jedis.hmset ("article",map)System.out.println(hash)
}

(2)获取散列中的所有键值对

@Test
public void hgetallTest(){Map<String,String>map =jedis.hgetAll("article");Set<Map.Entry<String,String>>set =map.entryset()Iterator<Map.Entry<String,String>>iterator =set.iterator();while (iterator.hasNext ())Map.Entry<String,String>keyval =iterator.next ()System.out.println(keyval);}
}

(3)删除散列中指定键及其相对应的值。

@Test
public void hdelTest(){Long result =jedis.hdel("article","author");System.out.println(result);
}

操作有序集合

创建TestSsets.java文件,
(1)为有序集合添加一个或多个键值对

    public void zaddTest() {Map<String, Double> map = new HashMap<>();map.put("wurui", 5.0);map.put("bob", 3.5);map.put("jack", 6.0);Long result = jedis.zadd("score", map);System.out.println(result);}

(2)统计有序集合中指定分值范围内的元素个数

    public void zcountTest() {Long num = jedis.zcount("score", 2, 4);System.out.println(num);}

(3)移除有序集合中的指定元素。

    public void zremTest() {Long result = jedis.zrem("score", "tom");System.out.println(result);}

实现完整代码:

package com.redistest;
import redis.clients.jedis.Jedis;
import java.util.HashMap;
import java.util.Map;public class TestSets {private static Jedis jedis = new Jedis("192.168.222.101", 6379);public static void main(String[] args) {System.out.println("服务启动..." + jedis.ping());// 调用测试方法TestSets test = new TestSets();test.zaddTest();test.zcountTest();test.zremTest();}public void zaddTest() {Map<String, Double> map = new HashMap<>();map.put("wurui", 5.0);map.put("bob", 3.5);map.put("jack", 6.0);Long result = jedis.zadd("score", map);System.out.println(result);}public void zcountTest() {Long num = jedis.zcount("score", 2, 4);System.out.println(num);}public void zremTest() {Long result = jedis.zrem("score", "tom");System.out.println(result);}
}

在这里插入图片描述


总结

至此,我们已经完成了对常用Redis键操作命令,使用Java操作Redis,配置 Redis 连接信息,操作字符串、列表、集合、散列、有序集合的学习啦!

相关文章:

使用Java操作Redis

文章目录 常用Redis键操作命令使用Java操作Redis配置 Redis 连接信息创建 Maven 项目结构 操作字符串操作列表操作集合操作散列操作有序集合总结 报错解决办法&#xff1a; 当使用redis-cli连接客户端出现not connected时 使用redis-cli -h 192.168.222.101 -p 6379即可解决 …...

开源的CMS建站系统可以随便用吗?有什么需要注意的?

开源CMS建站系统虽然具有许多优点&#xff0c;但并非完全“随便用”。无论选哪个CMS系统&#xff0c;大家在使用的时候&#xff0c;可以尽可能地多注意以下几点&#xff1a; 1、版权问题 了解开源许可证&#xff1a;不同的开源CMS系统采用不同的开源许可证&#xff0c;如GPL、…...

数据结构:探秘AVL树

本节重点 理解AVL树的概念掌握AVL树正确的插入方法利用_parent指针正确更新平衡因子掌握并理解四种旋转方式&#xff1a;左单旋&#xff0c;右单旋&#xff0c;左右双旋&#xff0c;右左双旋 一、AVL树的概念 AVL树得名于它的发明者G. M. Adelson-Velsky和E. M. Landis&…...

C++ 变量与初始化详解(十五)

1. 变量定义 在 C 中&#xff0c;定义变量的基本形式通常是先写出 类型说明符&#xff08;type specifier&#xff09;&#xff0c;后面紧跟由逗号分隔的一个或多个变量名&#xff0c;最后以分号结束。简单示例如下&#xff1a; int sum 0, value, units_sold 0; Sales_ite…...

【网络协议详解】—— STP 、RSTP、MSTP技术(学习笔记)

一、STP技术工作原理 STP&#xff08;Spanning Tree Protocol&#xff09;生成树协议&#xff08;IEEE 802.1D&#xff09;是一种网络协议&#xff0c;用于在网络拓扑中防止环路的产生。在二层交换网络中&#xff0c;逻辑上阻塞部分接口&#xff0c;实现从根交换机到所有节点的…...

C++中将记录集的数据复制到Excel工作表中的CRange类CopyFromRecordset函数异常怎么捕获

文章目录 一、异常类型及捕获逻辑二、完整代码示例三、关键错误场景与解决方案1. CopyFromRecordset 返回空数据2. COM错误 0x800A03EC3. Excel进程残留4. 内存不足 四、调试与日志记录1. 启用详细日志2. 捕获错误描述3. 调试断点 五、最佳实践 在C中使用 CRange::CopyFromReco…...

综述速读|086.04.24.Retrieval-Augmented Generation for AI-Generated Content A Survey

论文题目&#xff1a;Retrieval-Augmented Generation for AI-Generated Content: A Survey 论文地址&#xff1a;https://arxiv.org/abs/2402.19473 bib引用&#xff1a; misc{zhao2024retrievalaugmentedgenerationaigeneratedcontent,title{Retrieval-Augmented Generation…...

对内核fork进程中写时复制的理解记录

前言 文章写于学习Redis时对aof后台重写中写时复制的疑问 一、感到不理解的歧义 在部分技术文档中&#xff08;以小林的文章为例&#xff09;&#xff0c;对写时复制后的内存权限存在如歧义&#xff1a; ! 二、正确技术表述 根据Linux内核实现&#xff08;5.15版本&#x…...

【新手初学】SQL注入getshell

一、引入 木马介绍&#xff1a; 木马其实就是一段程序&#xff0c;这个程序运行到目标主机上时&#xff0c;主要可以对目标进行远程控制、盗取信息等功能&#xff0c;一般不会破坏目标主机&#xff0c;当然&#xff0c;这也看黑客是否想要搞破坏。 木马类型&#xff1a; 按照功…...

【湖北工业大学2025年ACM校赛(同步赛)】题解

比赛链接 A. 蚂蚁上树 题目大意 给定一棵 n n n 个结点的树&#xff0c;根结点为 1 1 1。每个 叶结点 都有一只蚂蚁&#xff0c;每过 1 1 1 秒钟&#xff0c;你可以选一些蚂蚁往其 父结点 走一步&#xff0c;但是要求任意两只蚂蚁都不能在同一个 非根结点 上。 问至少要…...

FPGA Verilog/VHDl 中的锁存latch

目录 一、前言二、锁存器定义三、verilog中锁存的产生四、verilog中锁存的影响和消除五、FPGA中的锁存器资源 一、前言 在做FPGA设计时&#xff0c;我们要求在组合逻辑设计时&#xff0c;case或者if-else条件要完整&#xff0c;否则会产生锁存。本文主要介绍锁存产生的原因和影…...

Ubuntu24.04 配置远程桌面服务

一&#xff1a;安装 sudo apt update sudo apt install vino 二&#xff1a;设置 gsettings set org.gnome.Vino require-encryption false # 关闭加密&#xff08;某些 VNC 客户端不支持加密&#xff09; gsettings set org.gnome.Vino prompt-enabled false # 关闭连接…...

【二刷代码随想录】螺旋矩阵求解方法、推荐习题

一、求解方法 &#xff08;1&#xff09;按点模拟路径 在原有坐标的基准上&#xff0c;叠加 横纵坐标 的变化值&#xff0c;求出下一位置&#xff0c;并按题完成要求。但需注意转角的时机判断&#xff0c;特别是最后即将返回上一出发点的位置。 &#xff08;2&#xff09;按层…...

Python基础教程:从格式化到项目管理

一、Typora代码块支持格式 在Typora中编写代码时&#xff0c;支持多种语言的语法高亮显示&#xff1a; 二、代码格式化 1. %格式化&#xff08;传统方式&#xff09; 第一种方式&#xff1a;正规方式 示例代码&#xff1a; name "张三" age 10 print("我的…...

Python爬虫:开启数据抓取的奇幻之旅(一)

目录 一、爬虫初印象&#xff1a;揭开神秘面纱​ 二、工欲善其事&#xff1a;前期准备​ &#xff08;一&#xff09;Python 环境搭建​ 1.下载 Python 安装包&#xff1a;​ 2.运行安装程序&#xff1a;​ 3.配置环境变量&#xff08;若自动添加失败&#xff09;&#x…...

分布式ID服务实现全面解析

分布式ID生成器是分布式系统中的关键基础设施&#xff0c;用于在分布式环境下生成全局唯一的标识符。以下是各种实现方案的深度解析和最佳实践。 一、核心需求与设计考量 1. 核心需求矩阵 需求 重要性 实现难点 全局唯一 必须保证 时钟回拨/节点冲突 高性能 高并发场景…...

浏览器与网络模块实践

浏览器渲染步骤 浏览器渲染大致分为以下四个步骤&#xff1a; 1. 构建 DOM 树 • 过程&#xff1a;当浏览器接收到 HTML 文档后&#xff0c;会从上到下依次解析 HTML 代码。每遇到一个开始标签&#xff0c;就会创建一个对应的 DOM 节点&#xff0c;并根据标签的嵌套关系将这些…...

谈谈Minor GC、Major GC和Full GC

目录 一、背景 二、三者之间的区分 1、Minor GC 2、Major GC &#xff08;1&#xff09;老年代空间不足&#xff1a; &#xff08;2&#xff09;晋升&#xff08;Promotion&#xff09;失败&#xff1a; &#xff08;3&#xff09;空间分配担保失败&#xff1a; &#x…...

基于SpringBoot实现的高校实验室管理平台功能四

一、前言介绍&#xff1a; 1.1 项目摘要 随着信息技术的飞速发展&#xff0c;高校实验室的管理逐渐趋向于信息化、智能化。传统的实验室管理方式存在效率低下、资源浪费等问题&#xff0c;因此&#xff0c;利用现代技术手段对实验室进行高效管理显得尤为重要。 高校实验室作为…...

梯度裁剪(Gradient Clipping)

梯度裁剪&#xff08;Gradient Clipping&#xff09;是一种用于防止梯度爆炸&#xff08;Gradient Explosion&#xff09;的技术&#xff0c;具体来说&#xff1a; 1. 梯度裁剪的作用 问题背景&#xff1a;在训练深度神经网络&#xff08;尤其是RNN/LSTM&#xff09;时&#x…...

联合办公空间WeWork的创新模式与私域流量时代的品牌温度——兼论开源AI大模型AI智能名片S2B2C商城小程序源码的潜在价值

摘要&#xff1a;本文聚焦于联合办公空间WeWork的成功模式&#xff0c;深入剖析其如何让创业用户摆脱传统租赁的束缚&#xff0c;打破空间与社交限制&#xff0c;为创业带来新的可能性与趣味性&#xff0c;并有效降低创业成本与风险。同时探讨了WeWork在私域流量时代所建立的平…...

Git配置

为什么要用&#xff1a;下载zip只是当前分支&#xff0c;不能进行仓库push、pull、checkout 1. 下载Git 先判断是否已经下过Git&#xff1a; git --version若没有版本号出来&#xff0c;就去下载&#xff1a;https://git-scm.com/downloads &#xff08;Windows、linux、mac…...

Protobuf 的快速使用(二)

这个部分会对通讯录进⾏多次升级&#xff0c;使⽤ 2.x 表⽰升级的版本&#xff0c;最终将会升级如下内容&#xff1a; 不再打印联系⼈的序列化结果&#xff0c;⽽是将通讯录序列化后并写⼊⽂件中。 从⽂件中将通讯录解析出来&#xff0c;并进⾏打印。 新增联系⼈属性&#xff…...

网页设计思路

CSS实现思路: 用一个div直接父级继承 在这里插入图片描述 一LOGO结构 h1>a>搜索关键字 二导航栏结构 结构:ul>li>a 三搜索框结构 div>input/a 四用户头像结构 div>a>imgspan 处理行内块和行内垂直对齐方向使用 vertical-align...

Vue3 配合 fullPage.js 打造高效全屏滚动网页

引言 在现代网页设计中&#xff0c;整屏滚动&#xff08;Full-page Scrolling&#xff09;已成为展示内容的一种流行方式。通过将内容分成若干个全屏页面&#xff0c;并配合流畅的过渡动画&#xff0c;可以为用户带来身临其境的浏览体验。本文将介绍如何使用 fullPage.js 插件来…...

全排列 II:去重的技巧与实现

全排列 II&#xff1a;去重的技巧与实现 1. 引言&#xff1a;排列问题的坑 你有没有遇到过这样的问题&#xff1f; 当我们在做全排列&#xff08;Permutation&#xff09;的时候&#xff0c;如果输入的数组中包含重复元素&#xff0c;生成的排列中就会出现大量重复项。这样不…...

微型导轨和普通导轨有哪些区别?

微型导轨和普通导轨都是常用的工业机械传动装置&#xff0c;目前&#xff0c;市场上有各种各样的导轨产品。那么微型导轨和普通导轨有哪些区别呢&#xff1f; 1、尺寸&#xff1a;微型导轨尺寸较小&#xff0c;滑座宽度最小可达 8MM&#xff0c;长度最小可达 11MM 左右&#xf…...

Java 输入流到输出流

Java 输入流到输出流的复制方法主要有以下六种实现方式&#xff0c;根据性能、适用场景和实现原理可分为不同类别&#xff1a; 一、基础字节流方式 实现原理&#xff1a;通过 FileInputStream 和 FileOutputStream 逐字节或块读取数据并写入。 代码示例&#xff1a; try (In…...

Anaconda安装-Ubuntu-Linux

1、进入Anaconda官网&#xff0c;以下载最新版本&#xff0c;根据自己的操作系统选择适配的版本。 2、跳过注册&#xff1a; 3、选择适配的版本&#xff1a; 4、cd ~/anaconda_download 5、bash Anaconda3-2024.10-1-Linux-x86_64.sh 6、按Enter或PgDn键滚动查看协议&…...

每日一题之既约分数

题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 如果一个分数的分子和分母的最大公约数是 1&#xff0c;这个分数称为既约分数。 例如 3/4,1/8,7/1​&#xff0c; 都是既约分数。 请问&#xff0c;有多少个既约分…...

诠视科技MR眼镜如何使用VLC 进行RTSP投屏到电脑

文章目录 一、应用开发部分&#xff08;1&#xff09;基础场景构建&#xff08;2&#xff09;添加XvCameraManager&#xff08;3&#xff09;添加XvMRVideoCaptureManager&#xff08;4&#xff09;添加XvRTSPStreamerManager&#xff08;5&#xff09;打包测试 二、VLC media …...

“头”里有什么——HTML 元信息

2025/3/28 向全栈工程师迈进&#xff01; 一、看基本HTML <!doctype html> <html lang"zh-CN"><head><meta charset"utf-8" /><title>我的测试页面</title></head><body><p>这是我的页面</p&g…...

【Kafka】从理论到实践的深度解析

在当今数字化转型的时代&#xff0c;企业面临着数据量呈指数级增长、业务系统愈发复杂的挑战。在这样的背景下&#xff0c;高效的数据传输与处理技术成为了关键。Kafka&#xff0c;作为一款分布式消息队列系统&#xff0c;凭借其卓越的性能和丰富的特性&#xff0c;在众多企业的…...

Debezium系列之:使用Debezium和Apache Iceberg构建数据湖

Debezium系列之:使用Debezium和Apache Iceberg构建数据湖 Debezium Server Iceberg“Debezium Server Iceberg” 消费者设置数据复制Upsert 模式保留已删除的记录使用Upsert模式追加模式优化批处理大小在数据分析的世界中,数据湖是存储和管理大量数据以满足数据分析、报告或机…...

resnet网络迁移到昇腾执行(OM上篇)

目录 总体介绍 pytorch迁移OM模型 原始代码详细介绍 模型加载和初始化 初始化统计变量 数据推理及归一化 统计每个样本的结果 基本概念 Softmax&#xff08;归一化指数函数&#xff09; 作用 代码示例 应用场景 argmax取最大值索引 作用 代码示例 两者配合使用…...

RHCA核心课程技术解析5:红帽高可用性集群架构与深度实践

一、红帽高可用集群架构全景 1.1 核心组件交互逻辑 graph TD A[节点1] -->|Corosync 心跳| B[节点2] A -->|Pacemaker 资源管理| C[共享存储] B --> C D[Fencing设备] -->|STONITH| A D -->|STONITH| B C -->|GFS2锁管理| A C -->|GFS2锁管理| B 1.2 集…...

Display Serializer、Camera Deserializer(Camera Des)和SerDes‌ 加解串应用

‌1. 概述&#xff1a;三者的核心定位‌ ‌(1) SerDes&#xff08;Serializer/Deserializer&#xff09;‌ ‌定义‌&#xff1a;通用高速数据传输技术&#xff0c;实现‌并行↔串行‌双向转换。‌角色‌&#xff1a;数据链路的“翻译官”&#xff0c;解决并行传输的带宽与距…...

vue3+bpmn.js基本使用

一、案例使用依赖 // 必填"bpmn-js": "^7.3.1", "bpmn-js-properties-panel": "^0.37.2","bpmn-moddle":"^7.1.3","camunda-bpmn-moddle": "^7.0.1",// 可选"element-plus/icons-vue&qu…...

《数据结构:单链表》

“希望就像星星&#xff0c;或许光芒微弱&#xff0c;但永不熄灭。” 博主的个人gitee&#xff1a;https://gitee.com/friend-a188881041351 一.概念与结构 链表是一种物理存储上非连续、非顺序的存储结构&#xff0c;数据元素的顺序逻辑是通过链表中的指针链接次序实现的。 单…...

RedHatLinux(2025.3.22)

1、创建/www目录&#xff0c;在/www目录下新建name和https目录&#xff0c;在name和https目录下分别创建一个index.htm1文件&#xff0c;name下面的index.html 文件中包含当前主机的主机名&#xff0c;https目录下的index.htm1文件中包含当前主机的ip地址。 &#xff08;1&…...

C++异常处理完全指南:从原理到实战

文章目录 异常的基本概念基本异常抛出与捕获多类型异常捕获异常重新抛出异常安全异常规范&#xff08;noexcept&#xff09;栈展开与析构标准库异常总结 异常的基本概念 异常是程序运行时发生的非预期事件&#xff08;如除零、内存不足&#xff09;。C通过try、catch和throw提…...

Oracle 19C 备份

在 Oracle 19c 中&#xff0c;备份数据库通常使用 RMAN&#xff08;Recovery Manager&#xff09; 工具&#xff0c;它是 Oracle 提供的官方备份和恢复工具。以下是通过 RMAN 备份 Oracle 19c 数据库的详细步骤和命令。 一、RMAN 基本概念 RMAN 是 Oracle 的备份和恢复工具&am…...

深入理解MySQL聚集索引与非聚集索引

在数据库管理系统中&#xff0c;索引是提升查询性能的关键。MySQL支持多种类型的索引&#xff0c;其中最基础也是最重要的两种是聚集索引和非聚集索引。本文将深入探讨这两种索引的区别&#xff0c;并通过实例、UML图以及Java代码示例来帮助您更好地理解和应用它们。 一、概念…...

用Python打造智能宠物:强化学习的奇妙之旅

友友们好! 我是Echo_Wish,我的的新专栏《Python进阶》以及《Python!实战!》正式启动啦!这是专为那些渴望提升Python技能的朋友们量身打造的专栏,无论你是已经有一定基础的开发者,还是希望深入挖掘Python潜力的爱好者,这里都将是你不可错过的宝藏。 在这个专栏中,你将会…...

OGG故障指南:OGG-01163 Bad column length (xxx) specified for column

报错 OGG-01163 Bad column length (xxx) specified for column AAA in table OWNER.TABLE, maximum allowable length is yyy原因 源端修改了字段长度。 虽然源端和目标端的长度已经通过DDL语句修改到一致&#xff0c;在extract进程未重启的情况下&#xff0c;生成的trail文…...

XML标签格式转换为YOLO TXT格式

针对的是多边形&#xff08;<polygon>&#xff09;来描述对象的边界&#xff0c;而不是传统的矩形框&#xff08;<bndbox>&#xff09; import xml.etree.ElementTree as ET import os from pathlib import Path# 解析VOC格式的XML文件&#xff0c;提取目标框的标…...

Java的string默认值

在Java中&#xff0c;String类型的默认值取决于其定义和实例化的方式。 以下是关于String默认值的详细说明 未实例化的String变量‌ 如果定义一个String变量但未对其进行实例化&#xff08;即未使用new关键字或直接赋值&#xff09;&#xff0c;其默认值为:ml-search[null]。这…...

侯捷 C++ 课程学习笔记:C++ 中引用与指针的深度剖析

目录 一、引言 二、引用与指针的基本概念 &#xff08;一&#xff09;引用 &#xff08;二&#xff09;指针 三、引用与指针的区别 &#xff08;一&#xff09;定义与初始化 &#xff08;二&#xff09;内存空间与 NULL 值 &#xff08;三&#xff09;自增操作 …...

llamafactory微调效果与vllm部署效果不一致如何解决

在llamafactory框架训练好模型之后&#xff0c;自测chat时模型效果不错&#xff0c;但是部署到vllm模型上效果却很差 这实际上是因为llamafactory微调时与vllm部署时的对话模板不一致导致的。 对应的llamafactory的代码为 而vllm启动时会采用大模型自己本身设置的对话模板信息…...

欢乐力扣:合并两个有序链表

文章目录 1、题目描述2、思路 1、题目描述 合并两个有序链表。  将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 在这里插入图片描述 2、思路 参考官方题解&#xff0c;简单来说就是不断调整链表指针的指向&#xff0c;让…...