【Redis】SpringBoot整合Redis

29 篇文章 2 订阅

一、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<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.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);
    }
}

                                                                                    

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

1886i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值