Jedis 快速入门
- 引入依赖
<!--jedis-->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.7.0</version>
</dependency>
<!--单元测试-->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.7.0</version>
<scope>test</scope>
</dependency>
- 编写测试类
package com.hao.jedisTest;
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;
// 建立连接
@BeforeEach
public void setUp() {
// 1.建立连接
jedis = new Jedis("192.168.150.101", 6379);
//jedis = JedisConnectionFactory.getJedis();
// 2.设置密码
jedis.auth("123321");
// 3.选择库
jedis.select(0);
}
@Test
public void testString() {
// 存入数据
String result = jedis.set("name", "黄宇诗");
System.out.println("result = " + result);
// 获取数据
String name = jedis.get("name");
System.out.println("name = " + name);
}
@Test
public void testHash() {
// 插入hash数据
jedis.hset("heima:user:5", "name", "Jack");
jedis.hset("heima:user:5", "age", "21");
// 获取
Map<String, String> map = jedis.hgetAll("heima:user:5");
System.out.println(map);
}
// 释放资源
@AfterEach
public void tearDown() {
if (jedis != null) {
jedis.close();
}
}
}
Jedis本身是线程不安全的,并且频繁的创建和销毁连接会有性能损耗,因此一般使用Jedis连接池代替Jedis的直连方式
Jedis连接池快速入门
- 编写连接池工具类
package hao.jedis.util;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class JedisConnectionFactory {
private static JedisPool jedisPool;
static {
// 配置连接池
JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMaxTotal(8); // 最大连接个数
poolConfig.setMaxIdle(8); // 最大空闲连接数
poolConfig.setMinIdle(0); // 最小空闲连接数
poolConfig.setMaxWaitMillis(1000); // 等待连接时间
// 创建连接池对象,参数:连接池配置、服务端ip、服务端端口、超时时间、密码
jedisPool = new JedisPool(poolConfig, "192.168.150.101", 6379, 1000, "123321");
}
public static Jedis getJedis(){
return jedisPool.getResource();
}
}
- 编写测试类
package com.hao.jedisTest;
import hao.jedis.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;
import java.util.Map;
public class JedisTest {
private Jedis jedis;
// 建立连接
@BeforeEach
public void setUp() {
// 1.建立连接
jedis = JedisConnectionFactory.getJedis();
// 2.设置密码
jedis.auth("123321");
// 3.选择库
jedis.select(0);
}
@Test
public void testString() {
// 存入数据
String result = jedis.set("name", "黄宇诗笨蛋");
System.out.println("result = " + result);
// 获取数据
String name = jedis.get("name");
System.out.println("name = " + name);
}
@Test
public void testHash() {
// 插入hash数据
jedis.hset("heima:user:5", "name", "Jack");
jedis.hset("heima:user:5", "age", "21");
// 获取
Map<String, String> map = jedis.hgetAll("heima:user:5");
System.out.println(map);
}
// 释放资源
@AfterEach
public void tearDown() {
if (jedis != null) {
jedis.close();
}
}
}