Redis介绍
Redis是目前业界使用最广泛的内存数据存储。相比memcached,Redis支持更
丰富的数据结构,例如:hash,list,set,string等,同时支持数据持久化。
除此之外,Redis还提供一些类数据库的特性,比如事务,HA,主从库。可以
说Redis兼具了缓存系统和数据库的一些特性,因此有着丰富的应用场景。
Redis命令
rediis命令大全地址
window安装
下载地址
*.conf:配置文件,配置redis的一些特性,如修改监听端口等。
Redis-server.exe: redis服务器启动文件。
Redis-cli.exe: 客户端启动文件。
SpringBoot2.0
在SpringBoot2.0之后,redis默认集成的是 Lettuce 音标[ˈletɪs]
1.5的版本默认采用的连接池技术是jedis,2.0以上版本默认的连接池是
Lettuce.
Jedis和Lettuce的区别
Jedis是一个优秀的基于Java语言的Reids客户端。但是,其不足也很明显:
Jedis在实现上是直接连接Redis-Server,在多个线程间共享一个Jedis实例
时时线程不安全的,如果想要在多线程的情况下使用Jedis,需要使用连接池
,每个线程都使用直接的Jedis实例,当连接数量增多时,会消耗很多物理资
源。
与Jedis相比Lettuce则完全克服了其线程不安全缺点:Lettuce是一个可伸缩
的线程安全的Redis客户端,支持同步、异步、和响应模式。多个线程可以共
享一个连接实例,而不必担心多线程并发问题。
它基于优秀的Netty NIO框架构建,支持Reids的高级功能,如Sentinel 哨兵
[ˈsentɪnl] 、集群、流水线,自动重新连接和Reids数据模型。
Jar依赖
<!-- redis -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- 进行redisTemplate配置的时候需要此Jar包 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</dependency>
application.properties
# Redis数据库索引(默认为0)
spring.redis.database=0
#Redis服务器地址
spring.redis.host=127.0.0.1
#Redis服务器连接端口
spring.redis.port=6379
#Redis服务器连接密码(默认为空)
spring.redis.password=
#连接池最大连接数(使用负值表示没有限制)
spring.redis.pool.max-active=8
连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.pool.max-wait=-1
连接池中的最大空闲连接
spring.redis.pool.max-idle=8
#连接池中的最小空闲连接
spring.redis.pool.min-idle=0
#连接超时时间(毫秒)
spring.redis.timeout=1000
核心配置类
package com.qc.springboot.config;
import java.time.Duration;
import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.cache.RedisCacheConfiguration;
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.connection.RedisConne