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

Redis之Java操作Redis的使用

🎉🎉欢迎来到我的CSDN主页!🎉🎉

🏅我是君易--鑨,一个在CSDN分享笔记的博主。📚📚

🌟推荐给大家我的博客专栏《Redis实战开发》。🎯🎯

🎁如果感觉还不错的话请给我关注加三连吧!🎁🎁

💖期待你的加入,一起学习,一起进步!💖💖

前言

         在上一期的博客中我们初步的去了解了一下Redis的知识简介,并且分享了关于Redis的一些基础操作。今天的这期博客继续带老铁们进一步探讨有关Redis的使用及操作,认真观看,仔细阅读。

 一、Java连接Redis

1. 启动Redis服务及客户端连接

        我们这次的Redis在我们Windows系统也就会主机电脑上启动服务,点击到我们解压的文件夹中,双击redis.bat文件运行即可,然后在主机连接,显示数据表代表成功。

 2. 在开发工具中导入pom依赖

        我这里是以IDEA作为操作演示,在pom.xml文件中添加以下代码。

<dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.9.0</version>
</dependency>

3. 新建一个类连接Redis数据库

        如下图,我新建一个文件夹Redis用于存放测试连接Redis数据库以及对数据库进行操作的类。

//连接
Jedis jedis = new Jedis("IP", 端口号);
//设置密码
jedis.auth("密码");
//测试连接代码   输出结果为pong则说明连接成功
System.out.println(jedis.ping());
//选择操作的数据库   i---->数据库编号
jedis.select(i);

二、Java操作redis数据库

1. Redis字符串(String)

1.1 设置值

语法: jedis.set("变量名","值")

 

        运行代码后我们在Redis客户端在指定的数据库刷新查看,验证数据是否设置添加成功 

 1.2 修改值

语法: jedis.set("变量名","值")

与设置值一样。

         数据库也对应的发生了改变

 1.3 设置有时间显示的值及查看剩余时间

语法: 

jedis.setex("变量名",时间,"值");      ----->      给键值对设置过期时间

ttl 变量名    ----->     获取键值对剩余的存活时间 

1.4 其他语法

type key     -----> 查看类型

keys * 或keys key   ------->查看所有或者指定的key

2. Redis哈希(Hash)

2.1 设置值

语法:

jedis.hset("key","变量名","值");     --->同时将多个field-value设置到哈希表key中

        该方式属于没插入一条数据都要编写一行代码,如果要实现在Linux系统中实现批量插入则需要借助编写工具类实现。

        所以我们新建一个类所谓工具类,在其中编写方法来实现Hash的批量插入。

RedisUtil

package Redis;import redis.clients.jedis.Jedis;import java.util.Map;
import java.util.Set;/*** @author 君易--鑨* @site www.yangxin.com* @company 木易* @create  2023-11-03 19:58*/
public class RedisUtil {
//     hash批量添加public static void setHashMap(Jedis jedis, String key, Map<String,String> map){if (map != null && map.size()>0){Set<String> keys =map.keySet();for (String k :keys){jedis.hset(key,k,map.get(k));}}}}

测试

结果 

 

 2.2 删除

语法:

hdel key field    ------>删除指定的字段值

 

2.3  获取值

语法:

hget key field  -------->获取指定的字段值 

3.  Redis列表(List)

        语法如下,效果则就不演示了,和Linux有类似的用法。

List语法
语法作用
lpush key value1 value2 value3 将一个或多个值插入到列表头部
llen key 获取列表的长度
lindex key index      根据索引获取列表中的元素
lrange key start sop查看指定范围内的元素

 4. Redis集合(Set)

语法作用
sadd key value1 [value2]     向集合添加一个或多个元素
 scard key获取集合中的元素数量
 exists key        是否存在

三、 Redis在会议OA中的运用

  1. 会话复制:在分布式环境下,用户的会话信息可能需要进行复制。Redis提供了会话复制功能,可以将用户的会话信息复制到多个Redis节点上,确保数据的可用性和可扩展性。
  2. 缓存策略:在会议OA系统中,可以根据不同的场景和需求,采用不同的缓存策略,如缓存最近访问的数据、缓存热门数据、缓存查询结果等。Redis提供了灵活的缓存策略,可以根据实际需求进行定制和优化。
  3. 事务处理:Redis支持事务处理,可以在多个操作之间执行原子性的更新和删除操作。在会议OA系统中,可以使用Redis的事务处理功能来实现一些复杂的业务逻辑,如会议申请、资源分配等。
  4. 分布式锁的优化:在使用分布式锁时,需要考虑锁的粒度和锁的持有时间。过细的锁粒度会增加系统的开销和复杂性,而过长的锁持有时间则可能导致系统的性能瓶颈。Redis提供了灵活的锁机制,可以根据实际需求进行优化。
  5. 数据持久化:Redis提供了数据持久化功能,可以将数据保存到磁盘中,避免数据丢失和意外重启的问题。在会议OA系统中,可以使用Redis的数据持久化功能来保证数据的可靠性和稳定性。
  6. 性能监控和调试:Redis提供了丰富的性能监控和调试工具,可以帮助开发人员及时发现和解决系统性能问题。在会议OA系统中,可以使用Redis的性能监控和调试工具来评估系统的性能表现和瓶颈所在。

本期分享到此结束,感谢观看 

 

相关文章:

Redis之Java操作Redis的使用

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是君易--鑨&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的博客专栏《Redis实战开发》。&#x1f3af;&#x1f3af; …...

《网络协议》01. 基本概念

title: 《网络协议》01. 基本概念 date: 2022-08-30 09:50:52 updated: 2023-11-05 15:28:52 categories: 学习记录&#xff1a;网络协议 excerpt: 互联网、网络互连模型&#xff08;OSI&#xff0c;TCP/IP&#xff09;、计算机通信基础、MAC 地址、ARP & ICMP、IP & 子…...

设置Ubuntu网络代理

设置Ubuntu网络代理 1 编写set_proxy.sh 在/home/xxx新建文件set_proxy.sh&#xff0c;添加如下代码&#xff1a; #!/bin/sh hostip$(cat /etc/resolv.conf | grep nameserver | awk { print $2 }) wslip$(hostname -I | awk {print $1}) port10809PROXY_HTTP"http://$…...

LeetCode----23. 合并 K 个升序链表

 题目 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 示例 1: 输入:lists = [[1,4,5],[1,3,4],[2,6]] 输出:[1,1,2,3,4,4,5,6] 解释:链表数组如下: [ 1->4->5, 1->3->4, 2->6 ] 将它们合并到…...

[极客大挑战 2019]LoveSQL 1

题目环境&#xff1a;判断注入类型是否为数字型注入 admin 1 回显结果 否 是否为字符型注入 admin 1 回显结果 是 判断注入手法类型 使用堆叠注入 采用密码参数进行注入 爆数据库1; show database();#回显结果 这里猜测注入语句某字段被过滤&#xff0c;或者是’;被过滤导致不能…...

dji mini4pro 图片拷贝到电脑速度

环境 win电脑 amd3600 m.2固态硬盘 dp快充数据线 直接主机使用dp线连接无人机 9成是raw格式图片 一小部分是视频和全景图 TF卡信息: 闪迪 128GB 129元 闪迪 128GB TF(MicroSD) 存储卡U3 C10 V30 A2 4K 至尊超极速移动版 "TF卡至尊超极速" 理论读取200MB/s …...

基于深度学习的目标检测算法 计算机竞赛

文章目录 1 简介2 目标检测概念3 目标分类、定位、检测示例4 传统目标检测5 两类目标检测算法5.1 相关研究5.1.1 选择性搜索5.1.2 OverFeat 5.2 基于区域提名的方法5.2.1 R-CNN5.2.2 SPP-net5.2.3 Fast R-CNN 5.3 端到端的方法YOLOSSD 6 人体检测结果7 最后 1 简介 &#x1f5…...

前端面试题之CSS篇

1、css选择器及其优先级 标签选择器: 1类选择器、属性选择器、伪类选择器&#xff1a;10id选择器&#xff1a;100内联选择器&#xff08;style“”&#xff09;&#xff1a;1000!important&#xff1a;10000 2、display的属性值及其作用 属性值作用none元素不显示&#xff0c…...

【SQL相关实操记录】

一. 两张表的联合查询 task表中含 id(任务的序列号), action(任务内容), owner(任务分配的对象), target_date(目标完成日期), status(任务的完成状态),mmid(对应meeting的序列号--表示在该meeting中所对应布置的任务). meeting表中含id(meeting的序列号), status(meeting记…...

Python爬虫实战-批量爬取下载网易云音乐

大家好&#xff0c;我是python222小锋老师。前段时间卷了一套 Python3零基础7天入门实战https://blog.csdn.net/caoli201314/article/details/1328828131小时掌握Python操作Mysql数据库之pymysql模块技术https://blog.csdn.net/caoli201314/article/details/133199207一天掌握p…...

LeetCode 面试题 16.14. 最佳直线

文章目录 一、题目二、C# 题解 一、题目 给定一个二维平面及平面上的 N 个点列表 Points&#xff0c;其中第 i 个点的坐标为 Points[i][Xi,Yi]。请找出一条直线&#xff0c;其通过的点的数目最多。 设穿过最多点的直线所穿过的全部点编号从小到大排序的列表为 S&#xff0c;你仅…...

Spring Boot创建多模块项目

创建一个普通的Spring Boot项目, 然后只留下 pom.xml 剩下的都删掉 删除多余标签 标识当前为父模块 创建子模块 删除子模块中多余标签 声明父模块 在父模块中声明子模块...

Node.js、Chrome V8 引擎、非阻塞式I/O介绍

目录 Node.js介绍Chrome V8 引擎介绍非阻塞式I/O介绍 &#x1f44d; 点赞&#xff0c;你的认可是我创作的动力&#xff01; ⭐️ 收藏&#xff0c;你的青睐是我努力的方向&#xff01; ✏️ 评论&#xff0c;你的意见是我进步的财富&#xff01; Node.js介绍 Node.js 是一个…...

企业服务总线ESB有什么作用?和微服务有什么区别?会如何发展?

企业服务总线ESB是什么 下面这张图&#xff0c;稍微了解些IT集成的朋友应该不陌生。 随着信息化发展不断深入&#xff0c;企业在不同的阶段引入了不同的应用、系统和软件。这些原始的应用系统互不连通&#xff0c;如同一根根独立的烟囱。 但是企业业务是流程化的&#xff0c;…...

NLP之LSTM原理剖析

文章目录 背景simpleRNN的局限性 LSTM手写一下sigmoid例子支持长记忆的神经网络解读3重门 背景 SimpleRNN有一定局限性&#xff0c; 图片上的文字内容: 图片标题提到“SimpleRNN是一种基础模型。它用于解决序列型问题&#xff0c;其中的每一步的输出会影响到下一步的结果。图…...

ESP32网络开发实例-Web方式配置WiFi连接

Web方式配置WiFi连接 文章目录 Web方式配置WiFi连接1、ESP Wi-Fi 管理器介绍2、软件准备3、硬件准备4、代码实现在本文中,我们将介绍如何实现在Web页面中配置ESP32的WiFi连接。 1、ESP Wi-Fi 管理器介绍 ESP32 将在启动时设置为热点模式 连接到充当 AP 的 ESP32 开发板。 在连…...

ElasticSearch 批量插入漏数据

项目场景&#xff1a; 项目中需要把Mysql数据同步到ElasticSearch中 问题描述 数据传输过程中数据不时出现丢失的情况&#xff0c;偶尔会丢失一部分数据&#xff0c;本地测试也无法复现&#xff0c;后台程序也没有报错&#xff0c;一到正式环境就有问题,很崩溃 这里是批量操…...

C++——类和对象之运算符重载

运算符重载 本章思维导图&#xff1a; 注&#xff1a;本章思维导图对应的xmind文件和.png文件都已同步导入至”资源“ 文章目录 运算符重载[toc] 1. 运算符重载的意义2. 函数的声明2.1 声明运算符重载的注意事项 3. 函数的调用4. const成员函数4.1 const成员函数的声明4.2 注意…...

第二阶段第一章——面向对象

前言 学习了这么久Python&#xff08;呃其实也没多久差不多两周&#xff09;&#xff0c;可能有小伙伴说我废了&#xff0c;两周才学这么点&#xff0c;咋说呢&#xff0c;我曾经也是急于求成&#xff0c;做任何事情都是急于求成&#xff0c;比如我喜欢一个人我就想马上跟她在…...

Linux学习第33天:Linux INPUT 子系统实验(二):Linux 自带按键驱动程序的使用

Linux版本号4.1.15 芯片I.MX6ULL 大叔学Linux 品人间百味 思文短情长 本节笔记主要内容是学会如何使用Linux自带的按键驱动程序。 一、自带按键驱动程序源码简析 配置选项路径如下&#xff1a; -> Device Drivers ->…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性&#xff0c;不同版本的Docker对内核版本有不同要求。例如&#xff0c;Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本&#xff0c;Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

376. Wiggle Subsequence

376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

ArcGIS Pro制作水平横向图例+多级标注

今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作&#xff1a;ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等&#xff08;ArcGIS出图图例8大技巧&#xff09;&#xff0c;那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

Windows安装Miniconda

一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...

从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障

关键领域软件测试的"安全密码"&#xff1a;Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力&#xff0c;从金融交易到交通管控&#xff0c;这些关乎国计民生的关键领域…...

tomcat指定使用的jdk版本

说明 有时候需要对tomcat配置指定的jdk版本号&#xff0c;此时&#xff0c;我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...

前端中slice和splic的区别

1. slice slice 用于从数组中提取一部分元素&#xff0c;返回一个新的数组。 特点&#xff1a; 不修改原数组&#xff1a;slice 不会改变原数组&#xff0c;而是返回一个新的数组。提取数组的部分&#xff1a;slice 会根据指定的开始索引和结束索引提取数组的一部分。不包含…...

【免费数据】2005-2019年我国272个地级市的旅游竞争力多指标数据(33个指标)

旅游业是一个城市的重要产业构成。旅游竞争力是一个城市竞争力的重要构成部分。一个城市的旅游竞争力反映了其在旅游市场竞争中的比较优势。 今日我们分享的是2005-2019年我国272个地级市的旅游竞争力多指标数据&#xff01;该数据集源自2025年4月发表于《地理学报》的论文成果…...