
一.导入Spring Data Redis的maven坐标
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
二.配置Redis数据源
application-dev.yml
sky:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
host: localhost
port: 3306
database: sky_take_out
username: root
password:
alioss:
endpoint: oss-cn-nanjing.aliyuncs.com
bucket-name: sky-gjw-yhx
access-key-secret: 211i17wVSrtaUvFc66aAxdvWmML8Lr
access-key-id: LTAI5tS4c27CnefS3y1cccLR
redis:
host: localhost
port: 6379
auth: 123456
database: 10
application.yml
server:
port: 8080
spring:
profiles:
active: dev
main:
allow-circular-references: true
datasource:
druid:
driver-class-name: ${sky.datasource.driver-class-name}
url: jdbc:mysql://${sky.datasource.host}:${sky.datasource.port}/${sky.datasource.database}?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
username: ${sky.datasource.username}
password: ${sky.datasource.password}
servlet:
multipart:
max-file-size: 10MB
max-request-size: 100MB
redis:
host: ${sky.redis.host}
port: ${sky.redis.port}
auth: ${sky.redis.password}
database: ${sky.redis.database}
mybatis:
#mapper配置文件
mapper-locations: classpath:mapper/*.xml
type-aliases-package: com.sky.entity
configuration:
#开启驼峰命名
map-underscore-to-camel-case: true
logging:
level:
com:
sky:
mapper: debug
service: info
controller: info
sky:
jwt:
# 设置jwt签名加密时使用的秘钥
admin-secret-key: itcast
# 设置jwt过期时间
admin-ttl: 7200000
# 设置前端传递过来的令牌名称
admin-token-name: token
alioss:
endpoint: ${sky.alioss.endpoint}
access-key-id: ${sky.alioss.access-key-id}
access-key-secret: ${sky.alioss.access-key-secret}
bucket-name: ${sky.alioss.bucket-name}
三.编写配置类,创建RedisTemplate对象
首先创建Redis模板对象,设置redis连接工厂对象:redisTemplate.setConnectionFactory(redisConnectFactory);
设置redis key的序列化器:
redisTemplate.setKeySerializer(new StringRedisSerializer());
最后将RedisTemplate对象返回,后续我们就使用该RedisTemplate对象操作Redis数据库。
package com.sky.config;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.StringRedisSerializer;
@Configuration
@Slf4j
public class RedisConfiguration {
@Bean
public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) {
log.info("创建Redis模板对象...");
RedisTemplate redisTemplate = new RedisTemplate();
// 设置redis连接工厂对象
redisTemplate.setConnectionFactory(redisConnectionFactory);
// 设置redis key的序列化器
redisTemplate.setKeySerializer(new StringRedisSerializer());
return redisTemplate;
}
}
四.通过RedisTemplate对象操作Redis
package com.sky.test;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.*;
import java.util.concurrent.TimeUnit;
@SpringBootTest
public class SpringDataRedisTest {
@Autowired
private RedisTemplate redisTemplate;
@Test
public void testRedisTemplate() {
System.out.println(redisTemplate); // 首先输出redisTemplate对象看是否为空
ValueOperations valueOperations = redisTemplate.opsForValue(); // redis当中的字符串类型数据操作对象
HashOperations hashOperations = redisTemplate.opsForHash(); // redis当中的哈希类型数据操作对象
ListOperations listOperations = redisTemplate.opsForList(); // redis当中的列表类型数据操作对象
SetOperations setOperations = redisTemplate.opsForSet(); // redis当中的集合类型数据操作对象
ZSetOperations zSetOperations = redisTemplate.opsForZSet(); // redis当中的有序集合类型数据操作对象
}
}