> 文章列表 > 【Redis】SpringBoot整合Redis

【Redis】SpringBoot整合Redis

【Redis】SpringBoot整合Redis

一、SpringData

SpringData是Spring里专门用来操作数据的模块,其中对redis集成的模块

二、SpringDataRedis

它提供了对不同的redis客户端的整合比如Lettuce和Jedis,提供了RedisTemplate统一的API来操作redis,而且它支持Redis的发布订阅模式、哨兵和Redis集群,以及Lettuce的响应式编程,支持序列化于反序列化,支持Redis的JDKCollection实现

三、StringRedisTemplate

对Redis的各种操作进行了封装

API 返回值 说明
StringRedisTemplate.opsForValue() ValueOperations 操作String类型的数据
StringRedisTemplate.opsForHash() HashOperations 操作Hash类型的数据
StringRedisTemplate.opsForList() ListOperations 操作List类型的数据
StringRedisTemplate.opsForSet() SetOperations 操作Set类型的数据
StringRedisTemplate.opsForZSet() ZsetOperations 操作SortedSet类型的数据
StringRedisTemplate 通用命令

四、SpringBoot整合Redis

1、配置文件

首先我们需要在配置文件里配置连接redis的信息

spring:redis:# Redis?????host: IP# Redis端口port: 6379# 数据库database: 0# 密码
#    password:lettuce:pool:# ?????????????????max-wait: -1# ???????????max-idle: 5# ???????????min-idle: 0# ??????????????????max-active: 20

2、代码编写

开始编写代码

package com.example.demo;import com.example.demo.model.User;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.transaction.annotation.Transactional;import java.util.HashMap;
import java.util.Map;@SpringBootTest
@Transactional
public class Test {@Autowiredprivate StringRedisTemplate stringRedisTemplate;@Autowiredprivate ObjectMapper objectMapper;@org.junit.jupiter.api.Testvoid redisHash() {// 伪代码创建Map类型,作为hash类型存入redisMap<String,Object> map = new HashMap<>();map.put("id","1");map.put("name","admin");map.put("pass","admin");// 存入stringRedisTemplate.opsForHash().putAll("admin1",map);// 取出Map<Object,Object> res = stringRedisTemplate.opsForHash().entries("admin1");System.out.println(res);}@org.junit.jupiter.api.Testvoid redisValue() throws JsonProcessingException {// 将对象User作为String类型存入redisUser user = new User(1,"admin","admin");// 将该对象转为JSON格式String json = objectMapper.writeValueAsString(user);// 存入stringRedisTemplate.opsForValue().set("user",json);// 取出String re = stringRedisTemplate.opsForValue().get("user");// 将json格式转为Java对象User user1 = objectMapper.readValue(re,User.class);}
}