当前位置: 首页 > 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的性能监控和调试工具来评估系统的性能表现和瓶颈所在。

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

 

相关文章:

  • 二十、泛型(1)
  • 高性能计算HPC存储解决方案的特点
  • 专访HuggingFace CTO:开源崛起、创业故事和AI民主化丨智源独家
  • 手撕 实现iou,nms等
  • 听听ChatGPT对IT行业的发展和就业前景的看法
  • Android Studio(列表视图ListView)
  • 排查CPU飙高与系统反应慢的问题
  • IOS浏览器不支持对element ui table的宽度设置百分比
  • C++ 基础面试题总结(一)
  • JavaEE平台技术——预备知识(Maven、Docker)
  • web防火墙的功能
  • 基于R语言piecewiseSEM结构方程模型在生态环境领域实践技术
  • 数据分析相关知识整理_--秋招面试版
  • antd的Table组件使用rowSelection属性实现多选时遇到的bug
  • 万宾科技管网水位监测预警,管网水位的特点有哪些?
  • $translatePartialLoader加载失败及解决方式
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • Android系统模拟器绘制实现概述
  • docker-consul
  • Git的一些常用操作
  • Git同步原始仓库到Fork仓库中
  • HashMap剖析之内部结构
  • Mocha测试初探
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • Rancher如何对接Ceph-RBD块存储
  • 对象管理器(defineProperty)学习笔记
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 跳前端坑前,先看看这个!!
  • 在weex里面使用chart图表
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • ​比特币大跌的 2 个原因
  • #单片机(TB6600驱动42步进电机)
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • (70min)字节暑假实习二面(已挂)
  • (C++17) optional的使用
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (二)WCF的Binding模型
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (利用IDEA+Maven)定制属于自己的jar包
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (南京观海微电子)——I3C协议介绍
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (转)Linux下编译安装log4cxx
  • (转)visual stdio 书签功能介绍
  • .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖
  • .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)
  • [1127]图形打印 sdutOJ
  • [BPU部署教程] 教你搞定YOLOV5部署 (版本: 6.2)
  • [BZOJ2281][SDOI2011]黑白棋(K-Nim博弈)
  • [C#]获取指定文件夹下的所有文件名(递归)
  • [CDOJ 838]母仪天下 【线段树手速练习 15分钟内敲完算合格】
  • [Docker]六.Docker自动部署nodejs以及golang项目