一、Redis简介 Redis是一个开源(BSD许可)的、基于内存的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs7种数据类型的存储。二、安装Redis 本篇文章的讲述的重点不在Redis本身,所以这里就采用了一种比较方便的安装方式使用Docker安装Redis。这里安装的是当前最新版本的Redis。安装dockerpullredis运行dockerrunp6379:6379nameredisvUserswanggcDataredisdata:datavUserswanggcDataredisconfredis。conf:etcredisredis。confdredisredisserveretcredisredis。conf 命令说明:nameredis:指定容器的名称;p6379:6379:端口映射,前一个是主机端口号,后一个是Docker容器端口号;vUserswanggcDataredisdata:data:表示将主机的UserswanggcDataredisdata映射为Docker容器上的data,这样data中产生的数据就可以持久化到本地的目录下了;vUserswanggcDataredisconfredis。conf:etcredisredis。conf表示将本地;UserswanggcDataredisconfredis。conf映射为Docker容器上的etcredisredis。conf,这样再配合指令末尾的redisredisserveretcredisredis。conf实现让Docker容器运行时使用本地配置的Redis配置文件的功能了;redisredisserveretcredisredis。conf表示运行redis服务器程序,并且指定运行时的配置文件;d:表示后台启动Redis。三、集成步骤2。1添加Redis依赖dependencygroupIdorg。springframework。bootgroupIdspringbootstarterdataredisartifactIdversion{springboot。version}versionexclusionsexclusiongroupIdio。lettucegroupIdlettucecoreartifactIdexclusionexclusionsdependencydependencygroupIdredis。clientsgroupIdjedisartifactIddependencydependencygroupIdorg。apache。commonsgroupIdcommonspool2artifactIdversion2。9。0versiondependency 默认的情况下,springbootstarterdataredis会依赖Lettuce客户端驱动,笔者这里选择使用的是Jedis客户端驱动。所以在代码中需要使用了元素将其依赖排除了,同时引入了Jedis的依赖。2。2添加配置 在application。properties文件中加入如下代码:配置Redis服务器属性spring。redis。host127。0。0。1spring。redis。port6379spring。redis。passwordRedis连接超时时间,单位毫秒spring。redis。timeout1000配置连接池属性spring。redis。jedis。pool。minidle5spring。redis。jedis。pool。maxactive10spring。redis。jedis。pool。maxidle10spring。redis。jedis。pool。maxwait2000 这里我们配置了连接池和服务器的属性,用以连接Redis服务器。2。3编写Redis配置类ConfigurationpublicclassRedisConfig{Bean(nameredisTemplate)publicRedisTemplateString,ObjectredisTemplate(RedisConnectionFactoryfactory){RedisTemplateString,ObjecttemplatenewRedisTemplate();template。setConnectionFactory(factory);RedisSerializerjackson2JsonRedisSerializergetJacksonSerializer();StringRedisSerializerstringRedisSerializernewStringRedisSerializer();key采用String的序列化方式template。setKeySerializer(stringRedisSerializer);hash的key也采用String的序列化方式template。setHashKeySerializer(stringRedisSerializer);value序列化方式采用jackson的序列化方式template。setValueSerializer(jackson2JsonRedisSerializer);hash的value序列化方式采用jacksontemplate。setHashValueSerializer(jackson2JsonRedisSerializer);template。afterPropertiesSet();}redis的json序列化privateRedisSerializergetJacksonSerializer(){ObjectMapperomnewObjectMapper();om。setVisibility(PropertyAccessor。ALL,JsonAutoDetect。Visibility。ANY);om。activateDefaultTyping(LaissezFaireSubTypeValidator。instance,ObjectMapper。DefaultTyping。NONFINAL);returnnewGenericJackson2JsonRedisSerializer(om);}} 2。4使用RedisTemplate操作Redis数据类型1。注入RedisTemplateResourceprivateRedisTemplateString,UserredisT2。添加缓存redisTemplate。opsForValue()。set(redisKey,user);3。获取缓存数据UseruserredisTemplate。opsForValue()。get(redisKey);