zoukankan      html  css  js  c++  java
  • Spring Boot整合Redis的客户端Jedis

    首先pom.xml配置文件引入Jedis的包

    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>3.1.0</version>
    </dependency>
    

    其次application.properties配置文件

    在配置文件中添加一些关于redis的配置信息。有些参数可以不配置,根据自己的需求来。

    # Redis数据库索引(默认为0)
    spring.redis.database=0
    # Redis服务器地址
    spring.redis.host=82.156.29.86
    # Redis服务器连接端口
    spring.redis.port=6379
    # Redis服务器连接密码(默认为空)
    spring.redis.password=ruoyu123456
    # 连接池最大连接数(使用负值表示没有限制)
    spring.redis.jedis.pool.max-active=20
    # 连接池最大阻塞等待时间(使用负值表示没有限制)
    spring.redis.jedis.pool.max-wait=-1
    # 连接池中的最大空闲连接
    spring.redis.jedis.pool.max-idle=10
    # 连接池中的最小空闲连接
    spring.redis.jedis.pool.min-idle=0
    # 连接超时时间(毫秒)
    spring.redis.timeout=1000
    

    简单测试

    在测试文件夹下创建一个一个测试类,用来简单的测试一下能否正常连接到redis数据库。

    代码如下:

    @SpringBootTest
    public class JedisTest {
        //通过@Value注解的方式把application.properties中的数据注入进来
        @Value("${spring.redis.host}")
        private String host;
    
        @Value("${spring.redis.port}")
        private int port;
    
    
        @Value("${spring.redis.password}")
        private String password;
    
        @Test
        public void connectTest() {
            Jedis jc= new Jedis(host, port);
            jc.auth(password);
            String setResult = jc.set("springboot", "test"); //向redis插入一条数据
            if("OK".equals(setResult)) {
                System.out.println("set success!");
            }
        }
    }
    
    

    JedisPool

    在实际开发中,肯定不会像上面那样自己new一个Jedis的实例。我们要自动注入Jedis的实例,然后在需要使用的地方直接@AutoWired取出来就好了。

    JedisConfigure配置

    我们写一个redis的配置类

    @Configuration
    public class JedisConfig {
        @Value("${spring.redis.host}")
        private String host;
    
        @Value("${spring.redis.port}")
        private int port;
    
        @Value("${spring.redis.password}")
        private String password;
    
        @Value("${spring.redis.jedis.pool.max-active}")
        private int maxActive;
    
        @Value("${spring..redis.timeout}")
        private int timeout;
    
        public JedisPoolConfig jedisPoolConfig(){    //这个是修改redis性能的时候需要的对象
            JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
            jedisPoolConfig.setMaxWaitMillis(timeout); //连接超时时间
            jedisPoolConfig.setMaxTotal(maxActive); //连接池最大连接数
            return jedisPoolConfig;
        }
        //把JedisPool注入到IoC容器中
        //然后在其他地方(比如Service,Controller)就可以通过@AutoWired取出JedisPool的实例使用
        @Bean  
        public JedisPool jedisPool(){
            JedisPoolConfig jedisPoolConfig = jedisPoolConfig();
            return new JedisPool(jedisPoolConfig,host,port, timeout, password); //JedisPool的连接池
        }
    }
    

    使用

    下面写了一个测试用例来测试Jedis的配置类是否能工作。在service或者controller中的使用类似

    
    //测试JedisConfig是否配置成功
    @SpringBootTest
    public class JedisTest {
    
        @Autowired
        private JedisPool jp; //注入JedisPool的实例
    
        @Test
        public void connectTest() {
            Jedis jd = jp.getResource(); //从连接池中取出一个Jedis实例
            String setResult = jd.set("jedispool", "test"); //进行插入kv操作
            if("OK".equals(setResult)) {
                System.out.println("set success!");
            }
        }
    }
    
    

    JedisCluster

    如果Redis服务器是一个集群,有多个IP地址如何操作(后续有空补上)

    参考文献:

    https://www.cnblogs.com/keatsCoder/p/12609109.html

    https://www.cnblogs.com/beanbag/p/13081444.html

    https://blog.csdn.net/kxj19980524/article/details/85256630

  • 相关阅读:
    (原)Lazarus 异构平台下多层架构思路、DataSet转换核心代码
    (学)新版动态表单研发,阶段成果3
    (学) 如何将 Oracle 序列 重置 清零 How to reset an Oracle sequence
    (学)XtraReport WebService Print 报错
    (原)三星 i6410 刷机 短信 无法 保存 解决 办法
    (原) Devexpress 汉化包 制作工具、测试程序
    linux下网络配置
    apache自带ab.exe小工具使用小结
    Yii::app()用法小结
    PDO使用小结
  • 原文地址:https://www.cnblogs.com/variablex/p/15015531.html
Copyright © 2011-2022 走看看