首页 > 数据库 >Redis环境搭建【Redis】

Redis环境搭建【Redis】

时间:2023-05-30 15:45:13浏览次数:63  
标签:jackson redis 环境 springframework import Redis 序列化 com 搭建

1. 在 server模块的 pom文件中导入 spring data redis 依赖

1 <dependency>
2     <groupId>org.springframework.boot</groupId>
3     <artifactId>spring-boot-starter-data-redis</artifactId>
4 </dependency>

 

2. 添加redis配置

application-dev.yml

sky:
  redis:
    host: localhost
    port: 6379
    password: Redis密码

application.yml

spring:
  redis:
    host: ${sky.redis.host}
    port: ${sky.redis.port}
    password: ${sky.redis.password}

 

3. 配置类

 1 package com.sky.config;
 2 
 3 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 4 import com.fasterxml.jackson.annotation.PropertyAccessor;
 5 import com.fasterxml.jackson.databind.ObjectMapper;
 6 import com.fasterxml.jackson.databind.SerializationFeature;
 7 import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator;
 8 import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
 9 import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
10 import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
11 import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
12 import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
13 import org.springframework.cache.annotation.CachingConfigurerSupport;
14 import org.springframework.context.annotation.Bean;
15 import org.springframework.context.annotation.Configuration;
16 import org.springframework.data.redis.connection.RedisConnectionFactory;
17 import org.springframework.data.redis.core.RedisTemplate;
18 import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
19 import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
20 import org.springframework.data.redis.serializer.RedisSerializer;
21 import org.springframework.data.redis.serializer.StringRedisSerializer;
22 
23 import java.time.LocalDate;
24 import java.time.LocalDateTime;
25 import java.time.format.DateTimeFormatter;
26 
27 // Redis配置类
28 @Configuration
29 public class RedisConfig extends CachingConfigurerSupport {
30 
31     @Bean
32     @SuppressWarnings("all")
33     public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
34         //原生RedisTemplate
35         RedisTemplate<String, Object> template = new RedisTemplate<String, Object>();
36         template.setConnectionFactory(factory);
37 
38         //json序列化
39         Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = getJackson2JsonRedisSerializer();
40 
41         // -------- 设置key value 序列化方式 --------
42         // key采用String的序列化方式
43         template.setKeySerializer(RedisSerializer.string());
44         // hash的key也采用String的序列化方式
45         template.setHashKeySerializer(RedisSerializer.string());
46         // value序列化方式采用jackson
47         template.setValueSerializer(jackson2JsonRedisSerializer);
48         // hash的value序列化方式采用jackson
49         template.setHashValueSerializer(jackson2JsonRedisSerializer);
50         template.afterPropertiesSet();
51         return template;
52     }
53 
54     private Jackson2JsonRedisSerializer getJackson2JsonRedisSerializer() {
55         Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
56         ObjectMapper om = new ObjectMapper();
57         //设置ObjectMapper访问权限
58         om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
59         //记录序列化之后的数据类型,方便反序列化
60         om.activateDefaultTyping(LaissezFaireSubTypeValidator.instance,
61                 ObjectMapper.DefaultTyping.NON_FINAL);
62 
63         //LocalDatetime序列化,默认不兼容jdk8日期序列化
64         JavaTimeModule timeModule = new JavaTimeModule();
65         timeModule.addDeserializer(LocalDate.class,
66                 new LocalDateDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
67         timeModule.addDeserializer(LocalDateTime.class,
68                 new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
69         timeModule.addSerializer(LocalDate.class,
70                 new LocalDateSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
71         timeModule.addSerializer(LocalDateTime.class,
72                 new LocalDateTimeSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
73         //关闭默认的日期格式化方式,默认UTC日期格式 yyyy-MM-dd’T’HH:mm:ss.SSS
74         om.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
75         om.registerModule(timeModule);
76 
77         jackson2JsonRedisSerializer.setObjectMapper(om);
78         return jackson2JsonRedisSerializer;
79     }
80 }

 

标签:jackson,redis,环境,springframework,import,Redis,序列化,com,搭建
From: https://www.cnblogs.com/Rover20230226/p/17443419.html

相关文章

  • ⑤Redis主从集群-动力节点最全Redis7笔记
    5Redis主从集群为了避免Redis的单点故障问题,我们可以搭建一个Redis集群,将数据备份到集群中的其它节点上。若一个Redis节点宕机,则由集群中的其它节点顶上。5.1主从集群搭建Redis的主从集群是一个“一主多从”的读写分离集群。集群中的Master节点负责处理客户端的读写请求,而Slav......
  • Windows驱动开发之开发环境的搭建(一)
    一、简介Windows驱动开发是指为Windows操作系统编写内核模式驱动程序的过程。驱动程序是操作系统与硬件设备之间的桥梁,它负责管理和控制硬件设备,使其能够与操作系统和应用程序进行交互。随着windows系统的更新迭代,windows驱动开发技术也是不断的升级:从最早期的VXD(VirtualX......
  • Chirpstack服务器简介和搭建教程
    LoRaWAN网络主要优势体现在低成本、广域连接和低功耗,同时具有较多的开源平台可供使用。使用Chirpstack服务器可以快速搭建本地LoRaWAN网络。本文重点介绍一下Chirpstack服务器是做什么的和Chirpstack服务器的安装教程:Chirpstack是一款多组件的、部署简单的开源服务器,同时也是使用最......
  • Chirpstack服务器简介和搭建教程
    LoRaWAN网络主要优势体现在低成本、广域连接和低功耗,同时具有较多的开源平台可供使用。使用Chirpstack服务器可以快速搭建本地LoRaWAN网络。本文重点介绍一下Chirpstack服务器是做什么的和Chirpstack服务器的安装教程:Chirpstack是一款多组件的、部署简单的开源服务器,同时也是使用......
  • 【Haxe】(一)VSCode 搭建 Haxe 开发环境
    前言咱换工作啦!新工作这边需要用到的开发语言是Haxe,最近大概会写几篇笔记。Haxe的介绍就不写了,打算记录点有用的学习内容,先从搭建开发环境开始吧!当前适用版本:VSCode:CurrentLatestVersionHaxe版本:4.3.1文章最近更新日期:2023.05.30 环境配置先去Haxe官网下载语......
  • Redis数据类型【Redis】
    Redis采用的是键值对存储,键的类型只能为字符串,值支持五种数据类型  Redis的value 类似Java中 特点 字符串类型(string) String 普通字符串哈希类型(hash) HashMap key不可重复,value可重复列表类型(list)LinkedList 数据排序,可重复 集合类型(se......
  • Win下环境变量包含空格导致的坑
    例如JAVA_HOME=C:\ProgramFiles\java\这类环境变量中包含空格,其他使用Java的组件如Hadoop(win下懒得弄WSL,凑合用)会出现Error:JAVA_HOMEisincorrectlyset.此时,将环境变量的C:\ProgramFiles替换为C:\PROGRA~1其他同样的替换有:C:\ProgramFiles<---------->C:\PROGRA~......
  • 测试环境,调试gnn服务
    #1.关闭tafnodeps-ef|greptafnode/usr/local/app/taf/tafnode/util/stop.sh#2.启动程序gdb/usr/local/app/taf/tafnode/data/HQExtend.StockPoolAlarmServer/bin/StockPoolAlarmServerbreakReminderMgr.cpp:782--config=/usr/local/app/taf/tafnode/data/HQExtend.S......
  • 上海项目环境部署
    ideainterllig社区版https://www.jetbrains.com/idea/download/#section=windows点击下载社区版 vscodehttps://code.visualstudio.com/ nodejs14.21.3https://nodejs.org/download/release/v14.21.3/ jdk1.8https://www.oracle.com/java/technologies/downlo......
  • Xfce桌面环境升级截图工具,支持AVIF,JPEG XL
    近日消息,Xfce团队近日将屏幕截图工具xfce4-screenshooter更新至1.10.4版本,允许用户将截图保存为AVIF和JPEGXL两种无损图像格式。近日消息,Xfce团队近日将屏幕截图工具xfce4-screenshooter更新至1.10.4版本,允许用户将截图保存为AVIF和JPEGXL两种无损图......