一、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: 54、在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条)