【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 {

    @Autowired
    private StringRedisTemplate stringRedisTemplate;

    @Autowired
    private ObjectMapper objectMapper;

    @org.junit.jupiter.api.Test
    void redisHash() {
        // 伪代码创建Map类型,作为hash类型存入redis
        Map map = new HashMap<>();
        map.put("id","1");
        map.put("name","admin");
        map.put("pass","admin");

        // 存入
        stringRedisTemplate.opsForHash().putAll("admin1",map);

        // 取出
        Map res = stringRedisTemplate.opsForHash().entries("admin1");
        System.out.println(res);
    }
    
    @org.junit.jupiter.api.Test
    void redisValue() throws JsonProcessingException {
        // 将对象User作为String类型存入redis
        User 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);
    }
}

                                                                                    

你可能感兴趣的:(Redis,Java,redis,spring,boot,java)