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

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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/161830.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【算法|二分查找No.4】leetcode 852. 山脉数组的峰顶索引

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 &#x1f354;本专栏旨在提高自己算法能力的同时&#xff0c;记录一下自己的学习过程&#xff0c;希望…

点云学习记录

(50 封私信 / 79 条消息) 三维点云数据的语义分割方法除了pointnet还有哪些呢&#xff1f; - 知乎 (zhihu.com) (50 封私信 / 80 条消息) 点云特征提取 - 搜索结果 - 知乎 (zhihu.com) (50 封私信 / 80 条消息) 点云提取特征如何进行关键点匹配? - 知乎 (zhihu.com) 1、图像…

AdvFaces: Adversarial Face Synthesis

AdvFaces: Adversarial Face Synthesis AdvFaces:对抗性人脸合成 摘要 我们提出了AdvFaces&#xff0c;一种自动对抗人脸合成方法&#xff0c;通过生成对抗网络学习在显著面部区域产生最小的扰动。一旦AdvFaces经过训练&#xff0c;它就可以自动产生难以察觉的扰动&#xff0…

MapReduce WordCount程序实践(IDEA版)

环境 Linux&#xff1a;Hadoop2.x Windows&#xff1a;jdk1.8、Maven3、IDEA2021 步骤 编程分析 编程分析包括&#xff1a; 1.数据过程分析&#xff1a;数据从输入到输出的过程分析。 2.数据类型分析&#xff1a;Map的输入输出类型&#xff0c;Reduce的输入输出类型&#x…

C语言----每日五道选择题Day1

1.第一题 1、指出下列代码的缺陷&#xff08; &#xff09;【多选】 float f[10]; // 假设这里有对f进行初始化的代码 for(int i 0; i < 10;) {if(f[i] 0)break; } A: for(int i 0; i < 10;)这一行写错了 B: f是float型数据直接做相等判断有风险 C: f[i]应该是…

[100天算法】-搜索旋转排序数组(day 60)

题目描述 升序排列的整数数组 nums 在预先未知的某个点上进行了旋转&#xff08;例如&#xff0c; [0,1,2,4,5,6,7] 经旋转后可能变为 [4,5,6,7,0,1,2] &#xff09;。请你在数组中搜索 target &#xff0c;如果数组中存在这个目标值&#xff0c;则返回它的索引&#xff0c;否…

Type-C接口详解

USB接口发展史 USB接口历经Type-A→Type-B→Type-C五次大的更新换代&#xff1b;目前Type-A Standard作为标准USB接口形式&#xff0c;仍然在大范围应用&#xff0c;而Micro-A以及Type-B系列已经慢慢谈出人们的视野&#xff0c;逐渐被新型的Type-C代替。 Type-C接口 24PIN Typ…

xlua源码分析(二)lua Call C#的无wrap实现

xlua源码分析&#xff08;二&#xff09;lua Call C#的无wrap实现 上一节我们主要分析了xlua中C# Call lua的实现思路&#xff0c;本节我们将根据Examples 03_UIEvent&#xff0c;分析lua Call C#的底层实现。例子场景里有一个简单的UI面板&#xff0c;面板中包含一个input fie…

注意,注意,weak_ptr有坑

class Test { public:Test(){cout << "构造函数\n";}~Test(){cout << "析构函数\n";} }; void *operator new(size_t nsize) {void *ptmp std::malloc(nsize);printf("申请内存:%d,%p\n",nsize, ptmp);return ptmp; }void operator…

Maven的总结

先要了解maven是什么&#xff1f; Maven就是一个软件&#xff0c;掌握软件安装、配置、以及基本功能&#xff08;项目构建、依赖管理&#xff09;使用就是本课程的主要目标&#xff01; 最主要的功能是为了方便Java项目jar包的导入 认识Maven maven的GVAP属性 Maven 中的 GAVP…

ssm整合原理与实战

文章目录 前言一、SSM整合原理1.1 什么是SSM整合1.2 SSM整合核心问题1.2.1 第一问&#xff1a;SSM整合需要几个IoC容器&#xff1f;1.2.2 第二问&#xff1a;每个IoC容器对应哪些类型组件&#xff1f;1.2.3 第三问&#xff1a;IoC容器之间关系和调用方向&#xff1f;1.2.4第四问…

详细讲解如何求解「内向基环森林」问题

题目描述 这是 LeetCode 上的 「2876. 有向图访问计数」 &#xff0c;难度为 「困难」。 Tag : 「基环森林」、「内向基环树」、「拓扑排序」、「图」、「BFS」 现有一个有向图&#xff0c;其中包含 n 个节点&#xff0c;节点编号从 0 到 n - 1。此外&#xff0c;该图还包含了 …