SpringBoot(十一):SpringBoot整合Redis

详解springboot整合redis:https://blog.csdn.net/qq_36781505/article/details/86612988

一、环境准备

  • Redis-x64-3.2.100.zip
  • SpringBoot 1.5.10.RELEASE

Redis-x64-3.2.100.zip 下载地址:https://github.com/MicrosoftArchive/redis/releases

pom依赖:

<!-- redis -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>


二:application.yml:

复制代码
spring:
    redis:
      host: 120.79.82.191 
      port: 6379
      password: Lysb_TestRedis!2019
      jedis:
        pool:
          max-active: 8
          max-wait: -1
          max-idle: 500
          min-idle: 0
      lettuce:
        shutdown-timeout: 0

    datasource:
      driver-class-name: com.mysql.jdbc.Driver
      url: jdbc:mysql://192.168.1.20:3306/test?useSSL=false
      username: root
      password: root123        
        

logging.level.com.demo.mapper: debug
复制代码

 bean:

复制代码
package cn.demo.bean;

import java.io.Serializable;

public class Days implements Serializable {
    
    private String openId;
    private String daysId;
    //每天的标题
    private String title;
    //代办事项的数量
    private int itemNumber;
    //日程
    private String date;
    public String getOpenId() {
        return openId;
    }
    public void setOpenId(String openId) {
        this.openId = openId;
    }
    public String getDaysId() {
        return daysId;
    }
    public void setDaysId(String daysId) {
        this.daysId = daysId;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public int getItemNumber() {
        return itemNumber;
    }
    public void setItemNumber(int itemNumber) {
        this.itemNumber = itemNumber;
    }
    public String getDate() {
        return date;
    }
    public void setDate(String date) {
        this.date = date;
    }
    @Override
    public String toString() {
        return "Days [openId=" + openId + ", daysId=" + daysId + ", title=" + title + ", itemNumber=" + itemNumber
                + ", date=" + date + "]";
    }
    
}
复制代码

redisconfig:

复制代码
package cn.demo.redis.config;

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.Jackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;

import cn.demo.bean.Days;

@Configuration
public class RedisConfig{
    @Bean
    public RedisTemplate<String, Days>redisTemplate(RedisConnectionFactory factory){
        RedisTemplate<String,Days>template=new RedisTemplate<>();
        //关联
        template.setConnectionFactory(factory);
        //设置key的序列化器
        template.setKeySerializer(new StringRedisSerializer());
        //设置value的序列化器
        template.setValueSerializer(new Jackson2JsonRedisSerializer<>(Days.class));
        return template;
    }
}
复制代码

redisTest:

复制代码
package cn.demo.test;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.test.context.junit4.SpringRunner;

import cn.demo.bean.Days;

@RunWith(SpringRunner.class)
@SpringBootTest
public class RedisTest {

    @Autowired
    private RedisTemplate<String,Days> redisTemplate;
    
    //注入一个对象缓存在redis
    @Test
    public void testSet(){
        Days d=new Days();
        d.setDate("123");
        d.setDaysId("456");
        d.setItemNumber(123);
        d.setOpenId("dawda");
        d.setTitle("title");
        this.redisTemplate.opsForValue().set("days",d);
        System.out.println("redisTemplate=="+(redisTemplate.opsForValue().get("days")));
    }
}
复制代码

 

posted @   威兰达  阅读(3542)  评论(2编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示