
一、Jedis连接Redis
1、创建项目2、依赖:3、配置文件4、在Test进行测试: 二、Jedis连接池连接Redis三、封装JedisUtil对外提供连接对象获取的方法
一、Jedis连接Redis 1、创建项目 2、依赖:3、配置文件4.0.0 org.springframework.boot spring-boot-starter-parent2.2.5.RELEASE com.xxxx redis-demo0.0.1-SNAPSHOT redis-demo Demo project for Spring Boot 1.8 org.springframework.boot spring-boot-starter-data-redisio.lettuce lettuce-coreredis.clients jedisorg.springframework.boot spring-boot-starter-weborg.springframework.boot spring-boot-starter-testtest
spring:
redis:
# Redis服务器地址
host: 192.168.75.132
# Redis服务器端口
port: 6379
# Redis服务器密码
password: root
# 选择哪个库,默认0库
database: 0
# 连接超时时间
timeout: 10000ms
jedis:
pool:
# 最大连接数,默认8
max-active: 1024
# 最大连接阻塞等待时间,单位毫秒,默认-1ms
max-wait: 10000ms
# 最大空闲连接,默认8
max-idle: 200
# 最小空闲连接,默认0
min-idle: 5
4、在Test进行测试:
@SpringBootTest
class RedisDemoApplicationTests {
@Test
public void initConnt() {
//创建jedis对象,连接redis服务器
Jedis jedis = new Jedis("192.168.0.121",6379);
//设置密码
jedis.auth("root");
//指定数据库
jedis.select(1);
//使用ping命令,测试是否连接成功
String result = jedis.ping();
System.out.println(result);
//添加一条数据
jedis.set("name","zhangsan123");
String name = jedis.get("name");
System.out.println(name);
//如果jedis不等于空,则关闭
if(jedis != null){
jedis.close();
}
}
}
PONG
zhangsan123
二、Jedis连接池连接Redis
jedis是线程不安全,所有多线程会用连接池来处理Jedis。
连接池Jedis来获取连接对象,并且 *** 作reids服务器。
@Test
public void initConnt2(){
//初始化jedis连接池对象
JedisPool jedisPool = new JedisPool(new JedisPoolConfig(),"192.168.0.121",6379,10000, "root");
//从连接池中获取jedis对象
Jedis jedis = jedisPool.getResource();
//指定数据库
jedis.select(2);
//使用ping,测试是否正常连接
String ping = jedis.ping();
System.out.println(ping);
//添加一条数据
jedis.set("name", "zhangsanhaha");
//获取添加的数据
String name = jedis.get("name");
System.out.println(name);
if(jedis != null)
jedis.close();
}
PONG
zhangsanhaha
三、封装JedisUtil对外提供连接对象获取的方法
test:
@SpringBootTest
@RunWith(SpringRunner.class)
class RedisDemoApplicationTests {
@Autowired
private JedisPool jedisPool;
private Jedis jedis= null;
@Test
@Before
public void initConnt0(){
jedis = jedisPool.getResource();
}
@After
public void closeConnt(){
if( null != jedis){
jedis.close();
}
}
RedisConfig
package com.xxxx.redisdemo.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
@Configuration
public class RedisConfig {
//服务器地址
@Value("${spring.host}")
private String host;
//服务器的端口
@Value("${spring.port}")
private int port;
//服务器的密码
@Value("${spring.password}")
private String password;
//连接超时时间
@Value("${spring.timeout}")
private String timeout;
//最大连接数
@Value("${spring.jedis.pool.max-active}")
private int maxTotal;
//最大连接阻塞等待时间,单位毫秒
@Value("${spring.jedis.pool.max-wait}")
private String maxWait;
//最大空闲连接
@Value("${spring.jedis.pool.max-idle}")
private int maxIdle;
//最小空闲连接
@Value("${spring.jedis.pool.min-idle}")
private int minIdle;
@Bean
public JedisPool getJedisPool(){
//jedisPoolConfig 连接池的配置
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
//最大连接数
jedisPoolConfig.setMaxTotal(maxTotal);
//最大阻塞等待状态. String类型,强转为Long
jedisPoolConfig.setMaxWaitMillis(Long.valueOf(maxWait.substring(0,maxWait.length()-2)));
//最大空闲连接
jedisPoolConfig.setMaxIdle(maxIdle);
//最小空闲连接
jedisPoolConfig.setMinIdle(minIdle);
//jedisPool 连接池
JedisPool jedisPool = new JedisPool(jedisPoolConfig,host,port,Integer.valueOf(timeout.substring(0,
timeout.length()-2)),password);
return jedisPool;
}
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)