文章目录
一、背景
Redis在互联网的应用已经非常普遍,作为一款性能优异的内存数据库,有效地支撑了互联网应用高并发、高可用、高性能的特性。
- 作为一名JAVA程序员,必须通过实战项目的演练才能有效地掌握Redis的典型应用场景和技术特点。
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets).。
二、应用场景
strings | hashes | lists | sets | sorted sets |
---|---|---|---|---|
封锁一个IP地址:Incrby命令 | 存储用户信息 | 模拟消息队列 | 自动排重 | 以某一个条件为权重,进行排序 |
- 本系列文章将分别通过以上五个应用场景进行实战,本文将对Hash(哈希表)进行项目演练。
- 项目需求
– 创建SpringBoot后台服务程序,实现微信小程序登录及JWT认证;
– 通过Redis缓存记录该用户最后一次登录时间及登录累计次数。
三、环境配置
- 开发环境:
- JDK 1.8
- SpringBoot 2.2.5
- JPA
- Spring Security
- Mysql 8.0
- Redis Server 3.2.1
- Redis Desktop Manager
- SpringBoot后台服务程序实现微信小程序登录及JWT认证项目
四、SpringBoot集成Redis
4.1 添加依赖
<!--pom.xl-->
<!--Redis-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
4.2 配置文件 添加redis连接配置
<!-- application.yml-->
server:
port: 8000
spring:
freemarker:
check-template-location: false
profiles:
active: dev
jackson:
time-zone: GMT+8
data:
redis:
repositories:
enabled: false
#配置 Jpa
jpa:
properties:
hibernate:
dialect: org.hibernate.dialect.MySQL5InnoDBDialect
open-in-view: true
redis:
database: 0
host: 127.0.0.1
port: 6379
password:
4.3 增加RedisConfig配置及工具类
/**
* Redis配置类
*
* @author zhuhuix
* @date 2020-06-11
*/
@Configuration
@EnableCaching
@ConditionalOnClass(RedisOperations.class)
@EnableConfigurationProperties(RedisProperties.class)
public class RedisConfig extends CachingConfigurerSupport {
/**
*设置 redis 数据默认过期时间
*/
@Bean
public RedisCacheConfiguration redisCacheConfiguration(){
FastJsonRedisSerializer<Object> fastJsonRedisSerializer =