SpringBoot整合Jedis

摘要:
2、 要配置JedisCluster集群的集群配置,首先需要有一个Redis集群。您可以参考:Redis集群构建,使用Jedis操作Redis 2.1,导入依赖项仍然使用上述依赖项。您不需要导入spring-boot-starter缓存、spring-boot-starter数据redis,只需要导入jedis。

一、说明

  Spring中可以配置RedisTemplate来操作Redis,但是本文中并没有使用RedisTemplate,而是单纯的使用Spring的IoC,单独创建一个配置类,用来配置Redis,然后在需要进行Redis操作的地方,注入配置的Jedis即可。

  也就是说,本文中的内容,单纯地使用Jedis,其实和普通java项目配置Redis并没有太多的不同。

 

二、JedisCluster集群配置

  集群配置,需要先有一个Redis集群,可以参考:Redis集群搭建使用Jedis操作Redis

2.1、导入依赖

  仍旧使用上面的依赖,不需要导入spring-boot-starter-cache、spring-boot-starter-data-redis,只需要导入jedis即可。

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

  

2.2、配置文件

  在配置文件中加入一下内容:

# redis集群的节点信息
redis.cluster.nodes=192.168.1.3:6379,192.168.1.4:6379,192.168.1.5:6379
# redis连接池的配置
redis.cluster.pool.max-active=8
redis.cluster.pool.max-idle=5
redis.cluster.pool.min-idle=3

  

2.3、创建配置类

  下面是示例代码:

package cn.ganlixin.ssm.config;

import org.apache.commons.collections4.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.JedisCluster;
import redis.clients.jedis.JedisPoolConfig;

import java.util.Set;
import java.util.stream.Collectors;

@Configuration
public class RedisClusterConfig {

    private static final Logger log = LoggerFactory.getLogger(RedisClusterConfig.class);

    @Value("${redis.cluster.nodes}")
    private Set<String> redisNodes;

    @Value("${redis.cluster.pool.max-active}")
    private int maxTotal;

    @Value("${redis.cluster.pool.max-idle}")
    private int maxIdle;

    @Value("${redis.cluster.pool.min-idle}")
    private int minIdle;

    // 初始化redis配置
    @Bean
    public JedisCluster redisCluster() {

        if (CollectionUtils.isEmpty(redisNodes)) {
            throw new RuntimeException();
        }

        // 设置redis集群的节点信息
        Set<HostAndPort> nodes = redisNodes.stream().map(node -> {
            String[] nodeInfo = node.split(":");
            if (nodeInfo.length == 2) {
                return new HostAndPort(nodeInfo[0], Integer.parseInt(nodeInfo[1]));
            } else {
                return new HostAndPort(nodeInfo[0], 6379);
            }
        }).collect(Collectors.toSet());

        // 配置连接池
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        jedisPoolConfig.setMaxTotal(maxTotal);
        jedisPoolConfig.setMaxIdle(maxIdle);
        jedisPoolConfig.setMinIdle(minIdle);

        // 创建jediscluster,传入节点列表和连接池配置
        JedisCluster cluster = new JedisCluster(nodes, jedisPoolConfig);
        log.info("finish jedis cluster initailization");

        return cluster;
    }
}

  

2.4、测试使用

  使用的时候,只需要注入redisCluster即可。

package cn.ganlixin.ssm.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import redis.clients.jedis.JedisCluster;

import javax.annotation.Resource;

@RestController
@RequestMapping("redis")
public class RedisController {

    @Resource
    private JedisCluster redisCluster;

    @RequestMapping("test")
    public String test() {
        redisCluster.set("hello", "world");

        String val = redisCluster.get("hello");
        return val;
    }
}

  

  

免责声明:文章转载自《SpringBoot整合Jedis》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇markdown语法---根据使用不断扩充中Dockerfile 书写原则下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

thinkphp 使用redis 整理(二) mark 一下

参考手册http://www.cnblogs.com/weafer/archive/2011/09/21/2184059.html redis 几种数据类型选择,参考 : https://blog.csdn.net/xlgen157387/article/details/60958657 https://www.cnblogs.com/George1994...

redis队列的实现

redis中文官网:http://www.redis.cn/ 关于redis队列的实现方式有两种: 1、生产者消费者模式。 2、发布者订阅者模式。 详解: 1、生产者消费者模式。 普通版本: 比如一个队列里面,生产者A push了一个数据进去,消费者B pop 了这个数据,那个这个队列依旧为空。所以是一对一的。 至于是先进先出还是先进后出等,可以依照函数l...

redis 发布订阅

redis 发布订阅 发布订阅(pub/sub)是一种消息通信模式,主要的目的是解耦消息发布者和消息订阅者之间的耦合,这点和设计模式中的观察者模式比较相似。pub /sub不仅仅解决发布者和订阅者直接代码级别耦合也解决两者在物理部署上的耦合。redis作为一个pub/sub server,在订阅者和发布者之间起到了消息路由的功能。订阅者可以通过subscr...

springboot 2 集成 redis 缓存 序列化

springboot 缓存为了实现是在数据中查询数据还是在缓存中查询数据,在application.yml 中将mybatis 对应的mapper 包日志设置为debug 。 spring: datasource: username: root password: rootpassword url: jdbc:mysql://l...

Redis常见配置redis.conf

redis的配置文件。相信学过SSH或SSM的读者都知道,配置文件的使用在当下开发已十分普遍,希望大家要熟悉习惯这 种开发方式,废话不多说,来开始我们今天的内容吧。 首先得找到 redis 的配置文件 redis.conf(就在你redis的安装目录下): (注意:在修改配置文件前请先备份一份,以防万一)...

redis教程--phpredis

phpredis是php的一个扩展 <?php //连接本地的 Redis 服务 $redis = new Redis(); $redis->connect('127.0.0.1', 6379); echo "Connection to server sucessfully。"; //查看服务是否运行 echo "Server is runni...