014-学习Redis-Jedis连接Redis

014-学习Redis-Jedis连接Redis,第1张

014-学习Redis-Jedis连接Redis

014-学习Redis-Jedis连接Redis AND Jedis连接池连接Redis

一、Jedis连接Redis

1、创建项目2、依赖:3、配置文件4、在Test进行测试: 二、Jedis连接池连接Redis三、封装JedisUtil对外提供连接对象获取的方法

一、Jedis连接Redis 1、创建项目

2、依赖:


    4.0.0

    
        org.springframework.boot
        spring-boot-starter-parent
        2.2.5.RELEASE
         
    

    com.xxxx
    redis-demo
    0.0.1-SNAPSHOT
    redis-demo
    Demo project for Spring Boot

    
        1.8
    

    
        
        
            org.springframework.boot
            spring-boot-starter-data-redis
            
            
                
                    io.lettuce
                    lettuce-core
                
            
        

        
        
            redis.clients
            jedis
        

        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    

3、配置文件
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;
    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5709315.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存