SpringBoot2.X集成Redis3.2 Jedis

概述

        前两三年使用Redis,后面工作中也一直使用。这次由于搭建公司框架,在SpringBoot的基础上集成Redis。

win10下安装Redis3.2

        下载Redis3.2

        首先下载Redis3.2,目前来讲,3.2是相对稳定且比较新的版本了。下载地址:Redis-64(V3.2)

        安装Redis3.2

        安装很简单,将下载的文件进行解压即可。

        

        

        启动测试Redis

        启动时,进入Redis的安装目录,在硬盘的路径一栏输入“cmd”,然后回车,即可直接cmd命令窗口,且目录已经是Redis的安装目录。

                

        然后在cmd窗口中输入命令:redis-server redis.windows.conf,如下图所示,说明启动成功。

        

        

        安装Redis Desktop Manager

      Redis Desktop Manager是Redis的桌面管理工具,可以说是Redis的可视化窗口工具。下载地址:Redis Desktop Manager

      

        下载后,安装基本上下一步,很简单。安装完成时,提醒查看Redis Desktop Manager的快速入门:快速入门

        Redis Desktop Manager连接Redis服务

       安装好Redis Desktop Manager后,就可以连接之前启动的Redis服务了。因为之前没有配置Redis服务密码,所以下面不需输入密码,只要输入连接名、地址、端口,然后连接就可以了。     

         连接成功后,如下图所示。之所以会的db0到db15,是因为Redis默认会给出16个db,且是从0开始的。 Redis Desktop Manager的具体使用,可以参考上面给出的快速入门连接,网上也有很多资料。  

SpringBoot集成Redis3.2

        引入Redis的依赖

       这里要特别说明一下,因为我使用的SpringBoot是2.X,Redis是3.2,SpringBoot2.X默认采用lettuce,而1.5默认采用的是jdeis,本文描述的是使用jedis,所以在依赖里要排除lettuce。否则会报错:

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'redisConnectionFactory' defined in class path resource [org/springframework/boot/autoconfigure/data/redis/LettuceConnectionConfiguration.class]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: io/netty/handler/ssl/SslProvider

<!-- Redis -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-redis</artifactId>
			<!-- 1.5的版本默认采用的连接池技术是jedis,2.0以上版本默认连接池是lettuce, 因为此次是采用jedis,所以需要排除lettuce的jar -->
			<exclusions>
				<exclusion>
					<groupId>redis.clients</groupId>
					<artifactId>jedis</artifactId>
				</exclusion>
				<exclusion>
					<groupId>io.lettuce</groupId>
					<artifactId>lettuce-core</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<!-- jedis客户端 -->
		<dependency>
			<groupId>redis.clients</groupId>
			<artifactId>jedis</artifactId>
		</dependency>

		<!-- spring2.X集成redis所需common-pool2,使用jedis必须依赖它-->
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-pool2</artifactId>
			<version>2.5.0</version>
		</dependency>
		<!--<dependency>-->
			<!--<groupId>org.springframework.session</groupId>-->
			<!--<artifactId>spring-session-data-redis</artifactId>-->
		<!--</dependency>-->

        Redis配置文件

        当引入依赖成功后,在书写配置信息时,会自动给出提示,如下图所示。

        

        具体配置内容如下所示。写在application-dev.properties中。

#redis
#redis数据库索引,默认为0
spring.redis.database=0
#服务地址
spring.redis.host=localhost
#端口
spring.redis.port=6379
#密码,默认为空,本地没有设置密码,所以这里不填写
spring.redis.password=
#连接池最大的连接数,若使用负值表示没有限制
spring.redis.jedis.pool.max-active=8
#连接池最大阻塞等待时间,若使用负值表示没有限制
spring.redis.jedis.pool.max-wait=-1
#连接池中的最大空闲连接
spring.redis.jedis.pool.max-idle=8
#连接池中的最小空闲连接
spring.redis.jedis.pool.min-idle=0
#连接超时时间(单位为毫秒)
spring.redis.timeout=0

          因为我们存储的数据有可能是字符串、对象等不同的内容,也会有中文等不同编码的数据,所以这里先自定义下Redis的序列化器。

          SpringBoot与Redis集成测试

 测试代码如下:            

       到这里,SpringBoot2.x与Redis3.2的集成已经成功了,至于在项目中怎么使用,主要还是看团队的情况了。

       

Redis简要说明

        下面对本次集成过程中一些点进行简要说明。

      首先是在启动Redis的时候,输入的命令是:redis-server redis.windows.conf,其中redis-server对应是redis-server.exe,即Redis的服务程序,redis.windows.conf对应的是windows系统下Redis的配置文件,可以配置Redis的端口、密码等。

       在集成过程中,一定要注意SpringBoot和Redis不同版本的情况。此次使用的SpringBoot版本是2.X,Redis版本是3.2,SpringBoot2.X默认采用lettuce,而1.5默认采用的是jdeis,本文描述的是使用jedis,所以在引入依赖里要排除lettuce。更大的区别是SpringBoot2.X集成Redis的时候,引入的依赖spring-boot-starter-redis,而SpringBoot2.X使用的依赖是spring-boot-starter-data-redis,它们的RedisCacheManager就不一样了,在写Redis的配置类时就会遇到问题。

猜你喜欢

转载自blog.csdn.net/qinxian20120/article/details/81062085