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

[3-02-01].第13节:三方整合 - Jedis客户端操作Redis

Redis大纲


一、什么是Jedis:

  • Jedis Client是Redis官网推荐的一个面向java客户端文件实现对各类API进行封装调用

二、基于Maven整合Jedis操作Redis:

第1步:引入依赖:

  • 1.新建maven项目,pom文件中引入依
<?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.jianqun</groupId><artifactId>jedis-demo</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>3.2.0</version></dependency><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter</artifactId><version>5.7.0</version><scope>test</scope></dependency></dependencies></project>

第2步:创建连接:

package com.jianqun;import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import redis.clients.jedis.Jedis;
import java.util.Map;public class JedisTest {private Jedis jedis;@BeforeEachpublic void setUp() {// 建立连接jedis = new Jedis("192.168.148.3", 6379);// 设置密码//jedis.auth("123321");//选择库jedis.select(0);}
}

第3步:Jedis操作redis:

package com.jianqun;import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import redis.clients.jedis.Jedis;
import java.util.Map;public class JedisTest {private Jedis jedis;@BeforeEachpublic void setUp() {// 建立连接jedis = new Jedis("192.168.148.3", 6379);// 设置密码//jedis.auth("123321");//选择库jedis.select(0);}//测试操作Redis//测试String类型的数据结构@Testvoid testString() {// 插入数据,方法名称就是redis命令名称,非常简单String result = jedis.set("name", "张三");System.out.println("result = " + result);// 获取数据String name = jedis.get("name");System.out.println("name = " + name);}//测试Hash数据结构@Testvoid testHash() {// 插入数据,方法名称就是redis命令名称,非常简单jedis.hset("user:1", "name","张三");jedis.hset("user:1", "age","12");//获取数据Map<String, String> map = jedis.hgetAll("user:1");System.out.println("map= " + map);}//释放资源@AfterEachvoid tearDown() {// 释放资源if (jedis != null) {jedis.close();}}
}

第4步:项目结构:

在这里插入图片描述


二、使用Jedis连接池方式操作Redis

2.1.说明:

  • Jedis本身是线程不安全的,并且频繁的创建和销毁连接会有性能损耗,因此我们推荐大家使用Jedis连接池代替Jedis;

2.2.编码实现

a.创建Jedis连接池的工具类:

package com.jianqun.util;import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;/*** Redis连接池*/
public class JedisConnectionFactory {private static final JedisPool jedisPool;static {// 配置连接池JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();// 最大连接jedisPoolConfig.setMaxTotal(8);// 最大空闲连接jedisPoolConfig.setMaxIdle(8);// 最小空闲连接jedisPoolConfig.setMinIdle(0);// 设置最长等待时间, msjedisPoolConfig.setMaxWaitMillis(200);// 创建连接池对象:参数分别是服务器地址、端口号、超时时间、redis密码jedisPool = new JedisPool(jedisPoolConfig, "192.168.148.3", 6379,1000, "190915");}// 获取Jedis对象public static Jedis getJedis(){return jedisPool.getResource();}
}

b.使用连接池创建连接,进行测试:

package com.jianqun.test2;import com.jianqun.util.JedisConnectionFactory;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import redis.clients.jedis.Jedis;/*** Redis连接池进行连接*/
public class chiJedisTest {private Jedis jedis;@BeforeEachvoid setUp() {jedis = JedisConnectionFactory.getJedis();}@Testvoid test(){//存入数据String result = jedis.set("name", "虎哥");System.out.println("存储成功与否:" + result);//获取数据String name = jedis.get("name");System.out.println("获取的name值是:" + name);}@AfterEachvoid tearDown() {if (jedis != null){jedis.close();}}
}
http://www.lqws.cn/news/125479.html

相关文章:

  • 【游戏科学】游戏开发中数学算法的核心与应用
  • 四款主流物联网操作系统(FreeRTOS、LiteOS、RT-Thread、AliOS)的综合对比分析
  • 依赖注入的注解
  • IDEA中微服务指定端口启动
  • 每日Prompt:每天上班的状态
  • 【android bluetooth 协议分析 12】【A2DP详解 2】【开启ble扫描-蓝牙音乐卡顿分析】
  • 在 Android 框架中,接口的可见性规则
  • 解决Java项目NoProviderFoundException报错
  • 代码随想录 算法训练 Day22:回溯算法part01
  • 07 APP 自动化- appium+pytest+allure框架封装
  • java31
  • Vue.js教学第十九章:Vue 工具与调试,Vue DevTools 的使用与 VS Code 插件辅助开发
  • 匀速旋转动画的终极对决:requestAnimationFrame vs CSS Animation
  • AI在网络安全领域的应用现状和实践
  • unix/linux,sudo,其发展历程详细时间线、由来、历史背景
  • 《PyTorch:开启深度学习新世界的魔法之门》
  • 使用 React Native 开发鸿蒙(HarmonyOS)运动健康类应用的系统化准备工作
  • DrissionPage调试工具:网页自动化与数据采集的革新利器
  • AI自动化任务执行工具OpenManus一键启动整合包
  • unix/linux,sudo,其历史争议、兼容性、生态、未来展望
  • @Prometheus 监控-MySQL (Mysqld Exporter)
  • 第四十二天打卡
  • 深度学习之路——CNN卷积神经网络详解
  • Asp.net Core 通过依赖注入的方式获取用户
  • Facebook接入说明
  • CentOS 7 修改为静态 IP 地址完整指南
  • sql入门语句-案例
  • .NET 9中的异常处理性能提升分析:为什么过去慢,未来快
  • .Net Framework 4/C# 集合和索引器
  • PocketFlow 快速入门指南