Spring整合Redisson(全是步骤,没有原理)

spring整合Redisson

添加依赖

<!--Redisson-->
		<dependency>
			<groupId>org.redisson</groupId>
			<artifactId>redisson</artifactId>
			<version>3.10.3</version>
		</dependency>
<!-- redis -->
		<dependency>
			<groupId>redis.clients</groupId>
			<artifactId>jedis</artifactId>
			<version>2.8.1</version>
		</dependency>

注意:如果启动报错:Caused by: java.lang.NoSuchMethodError: io.netty.util.NetUtil.isIpV6AddressesPreferred()Z
需要排除其他依赖的相关netty依赖。
例如:
在这里插入图片描述

如何知道其他依赖有没有包含netty相关依赖?
在当前项目pom.xml同级文件夹下面打开cmd窗口,执行:mvn dependency:tree
命令会输出项目所有依赖和层级。
在这里插入图片描述

spring配置

1、 spring 头部增加命名空间

新增: xmlns:redisson=“http://redisson.org/schema/redisson”
http://redisson.org/schema/redisson http://redisson.org/schema/redisson/redisson.xsd
在这里插入图片描述

2、 定义RedissonClient的bean

在applicationContext.xml文件中添加对应redis模式的配置(单机,哨兵和集群模式)

单机

在这里插入图片描述

<!-- REDIS单机配置 -->
		<bean class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
			<property name="hostName" value="${redis.hostName}" />
			<property name="password" value="${redis.password}" />
			<property name="port" value="${redis.port}" />
			<property name="database" value="${redis.database}" />
		</bean>
		<redisson:client id="redissonClient">
			<redisson:single-server password="${redis.password}" address="redis://127.0.0.1:6379"/>
		</redisson:client>
哨兵

在这里插入图片描述

<!-- REDIS集群配置 -->
		<bean class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
			<constructor-arg ref="sentinelConfig" />
			<property name="password" value="${redis.password}" />
		</bean>
		<!--集群配置-->
		<bean id="sentinelConfig" class="org.springframework.data.redis.connection.RedisSentinelConfiguration">
			<constructor-arg name="propertySource" ref="redisConfig" />
		</bean>
		<!--定义redis配置-->
		<bean id="redisConfig" class="org.springframework.core.io.support.ResourcePropertySource">
			<constructor-arg name="location" value="emall.properties" /><!--使用配置文件中的redis配置-->
		</bean>
		<redisson:client id="redissonClient">
			<!--master-name为redis的主节点名称-->
			<redisson:sentinel-servers master-name="${spring.redis.sentinel.master}" password="${redis.password}">
				<!-- 可以配置多个 -->
				<redisson:sentinel-address value="redis://192.168.121.130:26379"/>
				<redisson:sentinel-address value="redis://192.168.121.131:26380"/>
				<redisson:sentinel-address value="redis://192.168.121.132:26381"/>
			</redisson:sentinel-servers>
		</redisson:client>
集群
<!--  Redis 连接池配置 -->
    <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">
        <property name="minIdle" value="${redis.minIdle}"/>
        <property name="maxIdle" value="${redis.maxIdle}"/>
        <property name="maxTotal" value="${redis.maxTotal}"/>
        <property name="testOnBorrow" value="${redis.testOnBorrow}"/>
        <property name="testWhileIdle" value="${redis.testWhileIdle}"/>
        <property name="testOnReturn" value="${redis.testOnReturn}"/>
 
        <property name="numTestsPerEvictionRun" value="${redis.numTestsPerEvictionRun}"/>
        <property name="maxWaitMillis" value="${redis.maxWaitMillis}"/>
        <property name="timeBetweenEvictionRunsMillis" value="30000"/>
    </bean>
 
    <!-- jedisCluster 配置 -->
    <!-- 自定义的工厂类,实现了FactoryBean<JedisCluster>接口 -->
    <bean id="jedisCluster" class="com.xxxxx.JedisClusterFactory">
        <!-- address: 集群配置 -->
        <property name="address" value="${redisColony.host}"/>
        <!-- timeout: 连接超时时间 -->
        <property name="timeout" value="100000"/>
        <!-- maxRedirections: 最大重定向 -->
        <property name="maxRedirections" value="5"/>
        <!-- 连接池 -->
        <property name="genericObjectPoolConfig" ref="poolConfig"/>
    </bean>
 
    <!--redisson的实例 -->
    <redisson:client id="redissonClient">
        <redisson:cluster-servers>
            <!-- 节点地址同redis集群的节点 -->
            <redisson:node-address value="${redisColony.host1}"/>
            <redisson:node-address value="${redisColony.host2}"/>
            <redisson:node-address value="${redisColony.host3}"/>
            <redisson:node-address value="${redisColony.host4}"/>
            <redisson:node-address value="${redisColony.host5}"/>
            <redisson:node-address value="${redisColony.host6}"/>
        </redisson:cluster-servers>
    </redisson:client>
redis配置参数

application.properties文件中定义redis配置参数

#spring session
spring.redis.sentinel.master=redis_6379
# 哨兵节点
spring.redis.sentinel.nodes=192.168.121.130:26379,192.168.121.131:26380,192.168.121.132:26381
redis.password=redis
redis.database=0
redis.hostName=127.0.0.1
redis.port=6379
# sentinel:哨兵 single:单机
#redis.model=sentinel
redis.model=single
redis.maxTotal=200
redis.maxIdle=25
redis.minIdle=0
redis.maxWaitMillis=10000
redis.testOnBorrow=false
redis.testOnReturn=false

相关推荐

  1. Spring boot整合redisson报错

    2024-03-11 21:44:04       32 阅读
  2. Spring Boot 中整合 Redisson 实现分布式锁

    2024-03-11 21:44:04       10 阅读
  3. Spring Boot 3 整合 Redisson 实现分布式锁

    2024-03-11 21:44:04       8 阅读
  4. Redisson-获取连接原理

    2024-03-11 21:44:04       7 阅读
  5. Spring Task 定时任务没有定时执行为什么?

    2024-03-11 21:44:04       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-11 21:44:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-11 21:44:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-11 21:44:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-11 21:44:04       18 阅读

热门阅读

  1. 行为型模式

    2024-03-11 21:44:04       18 阅读
  2. 738. 单调递增的数字

    2024-03-11 21:44:04       22 阅读
  3. sqoop-import 详解

    2024-03-11 21:44:04       20 阅读
  4. 最多几个直角三角形python

    2024-03-11 21:44:04       21 阅读
  5. Node docker 容器部署及配置参数

    2024-03-11 21:44:04       19 阅读
  6. 用户登录问题——登录态

    2024-03-11 21:44:04       17 阅读
  7. 算法补习基础完整版

    2024-03-11 21:44:04       15 阅读
  8. LeetCode解法汇总2129. 将标题首字母大写

    2024-03-11 21:44:04       18 阅读
  9. 【SQL实用技巧】-- 分组内求topN问题

    2024-03-11 21:44:04       18 阅读
  10. 全方位理解架构

    2024-03-11 21:44:04       20 阅读