温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

springboot集成redis支持设置redis密码的示例分析

发布时间:2021-06-15 14:51:41 来源:亿速云 阅读:3981 作者:小新 栏目:大数据

这篇文章将为大家详细讲解有关springboot集成redis支持设置redis密码的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

最近使用的spring boot项目中需要集成redis集群,连接redis时需要设置密码,但是设置密码之后发现boot集成的redis不支持设置密码(redis单节点也是一样),一旦设置密码后就会报错:Jedis does not support password protected Redis Cluster configurations

我使用的boot版本是1.4.x

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.4.7.RELEASE</version>
    <relativePath /> <!-- lookup parent from repository -->
</parent>

我看了一下源码,源码如图:

springboot集成redis支持设置redis密码的示例分析

源码中一旦发现你设置了密码的话,直接抛出异常,醉了。。。。。。   

然后我看了默认集成的Redis相关版本,其中jedis版本是2.8.x,spring-data-redis的版本是1.7.x,对应的版本中JedisCluster的构造函数,没有一个包含密码参数。

解决方案一:替换jedis和spring-data-redis的版本

修改前maven依赖如下

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

修改后maven依赖如下

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
    <exclusions>
        <exclusion>
	    <groupId>redis.clients</groupId>
	    <artifactId>jedis</artifactId>
	</exclusion>
	<exclusion>
	    <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-redis</artifactId>
	</exclusion>
    </exclusions>
</dependency>
 
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.9.0</version>
</dependency>
 
<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-redis</artifactId>
    <version>1.8.0.RELEASE</version>
</dependency>

解决方案二:升级boot版本到1.5或者以上

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.2.RELEASE</version>
    <relativePath /> <!-- lookup parent from repository -->
</parent>

boot 1.5.x版本中jedis版本默认是2.9.x,spring-data-redis的版本默认是1.8.x,所以可以正常使用redis密码进行验证。

application.properties 文件中 redis配置示例

#spring.redis.host = 140.143.23.94
spring.redis.password = 123456
#spring.redis.port = 6379
# 连接超时时间 单位 ms(毫秒)
spring.redis.timeout = 6000
spring.redis.cluster.nodes = 12.2.3.14:7001,12.2.3.14:7002,12.2.3.14:7003,12.2.3.14:7004
# 连接池中的最大空闲连接,默认值也是8
spring.redis.pool.max-idle = 8
# 连接池中的最小空闲连接,默认值也是0
spring.redis.pool.min-idle = 0
# 如果赋值为-1,则表示不限制;如果pool已经分配了maxActive个jedis实例,则此时pool的状态为exhausted(耗尽)。
spring.redis.pool.max-active = 8 
# 等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时。如果超过等待时间,则直接抛出
spring.redis.pool.max-wait = -1

关于“springboot集成redis支持设置redis密码的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI