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
  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值