springboot 整合redis

springboot3整合redis 来源于。 阅读详情

1.pom文件

<!--Spring Boot -->
		<!--支持 Web 应用开发,包含 Tomcat 和 spring-mvc。 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		
		<!-- springboot整合redis --> 
        <dependency>  
            <groupId>org.springframework.boot</groupId>  
            <artifactId>spring-boot-starter-data-redis</artifactId>  
        </dependency>

2.配置文件

#redis  
spring.redis.hostName=127.0.0.1
spring.redis.port=6379    
spring.redis.pool.maxActive=8    
spring.redis.pool.maxWait=-1    
spring.redis.pool.maxIdle=8    
spring.redis.pool.minIdle=0    
spring.redis.timeout=0

3.存取字符串

@Autowired
private StringRedisTemplate stringRedisTemplate;
	
@Test
public void save(){
   stringRedisTemplate.opsForValue().set("spingboot-redis","this is a test message");
}

执行后可在redis中查看

127.0.0.1:6379 > get springboot-redis
"this is a test message"

4.存取对象

class  A 需要实现Serializable接口

package com.knife.test;

import java.io.Serializable;

public class A implements Serializable{
	private String name;
	private int age;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public String toString() {
		return "{\"name\":\""+name+"\",\"age\":"+age+"}";
	}

	public A(String name, int age) {
		this.name = name;
		this.age = age;
	}
}

序列化class

package com.knife.test;

import org.springframework.core.convert.converter.Converter;
import org.springframework.core.serializer.support.DeserializingConverter;
import org.springframework.core.serializer.support.SerializingConverter;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.SerializationException;

public class RedisObjectSerializer implements RedisSerializer<Object>{

	private Converter<Object,byte[]> serializer = new SerializingConverter();
    private Converter<byte[],Object> deserializer = new DeserializingConverter();

    static final byte[] EMPTY_ARRAY = new byte[0];


    public byte[] serialize(Object o) throws SerializationException {

        if(o == null){
            return EMPTY_ARRAY;
        }

        try {
            return serializer.convert(o);
        }catch (Exception e){
            return EMPTY_ARRAY;
        }
    }

    public Object deserialize(byte[] bytes) throws SerializationException {
        if(isEmpty(bytes)){
            return null;
        }
        try {
            return  deserializer.convert(bytes);
        }catch (Exception e){
            throw new SerializationException("Can not deserializer",e);
        }

    }

    private boolean isEmpty(byte[] data){

        return (data == null || data.length == 0);
    }



}

redis配置class

package com.knife.test;


import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.StringRedisSerializer;

@Configuration
public class RedisConfig {

	
	@Bean
    JedisConnectionFactory jedisConnectionFactory(){
        return  new JedisConnectionFactory();
    }

    /**
     * 存入对象序列化信息
     * @return
     */
    @Bean
    public RedisTemplate<String,Object> redisSerizlizerObj(){
        RedisTemplate<String,Object> redisTemplate = new RedisTemplate<String,Object>();
        redisTemplate.setConnectionFactory(jedisConnectionFactory());
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        redisTemplate.setValueSerializer(new RedisObjectSerializer());
        return redisTemplate;
    }
    
}

测试

    @Autowired
	private RedisTemplate<String,A> rt;
	
    @Test
    public void saveobj(){
    	rt.opsForValue().set("classb", new A("wzj",29));
    }
    
    @Test
    public void getobj(){
    	System.out.println(rt.opsForValue().get("classb"));
    }

结果

127.0.0.1:6379>get classa
"\xac\xed\x00\x05sr\x00\x10com.knife.test.A\x19{\x8e\xc1`\xcc\xe4\xba\x02\x00\x02I\x00\x03ageL\x00\x04namet\x00\x12Ljava/lang/String;xp\x00\x00\x00\x1ct\x00\x03chq"

 

SpringBoot开发——整合Redis SpringBoot整合Redis 阅读详情

相关推荐

医疗AI Agent实战:从零搭建一个能看病的智能助手(附完整代码)

本文详细介绍了如何从零搭建一个医疗AI Agent智能助手,涵盖核心架构设计、症状推理引擎开发、安全与合规实现以及系统集成等关键环节。通过完整的代码示例和实战案例,帮助开发者快速构建具备医疗咨询能力的智能Agent,提升医疗服务的效率和质量。

ss78901的博客 467

Redis序列化报错:org.springframework.data.redis.serializer.SerializationException: Cannot serialize;

问题描述: org.springframework.data.redis.serializer.SerializationException: Cannot serialize; nested exception is org.springframework.core.serializer.support.SerializationFailedException: Failed to serialize object using DefaultSerializer; nested exception is

qq_42394044的博客 7123

从理论到实践:基于Zemax的高分辨率生物显微镜光学系统仿真与优化指南

本文详细介绍了基于Zemax的高分辨率生物显微镜光学系统仿真与优化全流程。从阿贝分辨率公式、柯勒照明等理论基础出发,逐步讲解Zemax建模、像差优化、制造可行性分析等核心步骤,并提供常见问题解决方案。通过实际案例展示如何将理论设计转化为可制造的优化方案,帮助工程师掌握从仿真到实际应用的关键技术。

weixin_29229989的博客 481

org.springframework.data.redis.serializer.SerializationException: Could not Read JSON

如上图为具体报错,很清楚无法读取JSON。RedisConfig文件是用来配置。

Li_SanJin的博客 2497

CCF CSP历年题解(python)

菜鸡一枚,没参加过算法竞赛,单纯为了抵研究生考试复试才刷题,通过写博客记录下来,希望能和大家互相交流,代码质量不高,大家见谅。 因为考研等原因,题目不定期更新… 第一题 201312-1出现最多次数的数 ...

weixin_44690402的博客 5004

Unity通过Vosk实现离线语音识别方法

以下是一个使用 Unity 和 Vosk(一个开源的离线语音识别库)的简单示例。将Vosk的DLL文件(如libvosk.dll、vosk.dll等)放入Assets/Plugins文件夹中。通过以上步骤,你可以在Unity中实现一个简单的离线语音识别功能。音频格式:确保录音的音频格式与Vosk模型要求的格式一致(通常是16kHz、16bit单声道)。首先,你需要下载Vosk的语音识别模型。在Assets文件夹中创建一个Plugins文件夹,用于存放Vosk的DLL文件。打开Unity并创建一个新的项目。

qq_39515892的博客 2070

org.springframework.data.redis.serializer.SerializationException: Could not read JSON: Unrecognized

最近写springSecurity +redis遇到问题报错 在实现接口UserDetails过后报错,于是我查阅了大量的文章并且分析过源码,再加上一步一步的断点调试,总结出了以下结论对于权限Set集合因为json反序列化原因写入redis,再取出来会出现反序列化失败异常,所以此时我们应该写一个新的类来继承它让其序列化成功代码如下 此时我们的UserDetailsService实现类如下 这样一来我们用redis的set方法存进去的时候再取出来就不会报错了 最后顺利完成jwt认证...

Fanzongshen的博客 5455

项目管理知识体系(PMBOK)中的质量规划详解

你是否遇到过这些场景?软件上线后用户投诉“功能漏洞多”,团队连夜返工;装修完的房子墙面开裂,施工方和业主互相推诿;新研发的手机电池续航不达标,被迫延迟发布。这些问题的根源,往往是项目启动时没有做好质量规划。本文聚焦PMBOK中“质量规划”(Plan Quality Management)过程,覆盖其核心概念、操作步骤、工具技术与实战应用,适用于IT、建筑、制造等各类项目场景。

项目管理的博客 1118

org.springframework.data.redis.serializer.SerializationException: Could not read JSON: Illegal chara

查看Redis的数据,发现无缘无故多了内容(\x00\x00)经过一系列调试,问题出在这,没有设置时间单位如果不设置时间单位,那么第三个会是偏移量。

Knight 1893

基于深度学习的X光安检危险品检测系统(YOLOv8 + UI界面 + 数据集)

随着全球安全形势的变化,机场、车站、地铁等场所的安检工作日益重要。X光安检系统已经成为现代公共安全领域中不可或缺的部分,能够有效地检测物品的内部结构,识别潜在的危险品。然而,传统的X光图像分析方法仍然依赖人工操作,检测效率较低,并且易受到人为因素的影响。近年来,深度学习技术的应用在图像分析领域取得了显著的突破,特别是在目标检测任务中,YOLO(You Only Look Once)模型因其高效性和精度,成为了许多目标检测任务的首选模型。

YOLO 1060

ZYNQ 7020 之 FPGA知识点重塑笔记一——串口通信

通信方式一般分为串行通信和并行通信。并行通信是指多比特数据同时通过并行线进行传送。这种传输方式通信线多、成本高,故不宜进行远距离通信,通常传输距离小于 30 米。串行通信是指数据在一条数据线上,一比特接一比特地按顺序传送的方式。这种运输方式通常节省传输线,大大降低使用成本,但数据传送速度慢。综上可知,串行通信主要应用于长距离、低速率的通信场合。本次实验我们主要讲解下串行通信。串行通信一般有2种通信方式:同步串行通信和异步串行通信。同步串行通信。

m0_51430584的博客 3094

解决报错:org.springframework.data.redis.serializer.SerializationException: Could not write/read JSON

解决org.springframework.data.redis.serializer.SerializationException: Could not write/read JSON: Java 8 date/time type `java.time.LocalDateTime` not supported by default: add Module "com.fasterxml.jackson.datatype:jackson-datatype-jsr310" to enable handling

Coin_Collecter的博客 3750

Go基础:Go语言详细介绍,环境搭建,及第一个程序详解

Go语言是Google开发的开源编程语言,具有高效、简洁、并发性强等特点。文章从Go语言的诞生背景、核心特性及应用领域展开介绍,并详细说明了Windows、Linux和macOS下的环境搭建步骤,包括安装、环境变量配置及测试方法。最后通过“Hello, World!”程序解析Go语言基本语法,并演示了编译发布和跨平台编译功能。全文涵盖了Go语言从入门到实践的完整流程,适合初学者快速上手。

数据知道的博客 6799

springboot 整合redis_Spring Boot 整合 Redis

点击上方“Java学习”,选择“置顶公众号”技术文章第一时间送达!作者 |艾神一不小心https://urlify.cn/zemY7z前言实际开发中缓存处理是必须的,不可能我们每次客户端去请求一次服务器,服务器每次都要去数据库中进行查找,为什么要使用缓存?说到底是为了提高系统的运行速度。将用户频繁访问的内容存放在离用户最近,访问速度最快的地方,提高用户的响应速度,今天先来讲下在 Spr...

weixin_39880328的博客 107

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Spring Boot整合Redis

Redis 基于内存进行存储,支持key-value的存储形式,底层是用C语言进行编写的 基于key-value形式的数据字典,结构简单,没有数据表的概念,直接用键值对形式完成数据的管理。 支持5种数据类型: 字符串 列表 集合 有序集合 哈希 搭建Redis环境 在windows上安装Redis 下载Redis https://github.com/MicrosoftArchive/redis/tags 如不能进入Github,可以到https://download.youkuaiyun.com/downl

zjojk的博客 1万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

详解SpringBoot整合Redis

SpringBoot整合Redis 在SpringBoot中一般使用RedisTemplate提供的方法来操作Redis。那么使用SpringBoot整合Redis 需要那些步骤呢。 1.JedisPoolConfig(这个是配置连接池) 2.RedisConnectionFactory(这个是配置连接信息,这里的RedisConnectionFactory是一个接口, 我们需要使用它的实...

XiangYida 12万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【SpringBoot】SpringBoot整合Redis

SpringBoot整合Redis 首先我是在Windows上开发的,因此需要在Windows安装Redis,安装的教程Windows下安装Redis服务,这个教程很容易懂,我按照教程一步一步安装下来,很久就可以运行Redis了。 这个教程在【JAVA】IDEA中SpringBoot整合M...

阳阳的博客 2511

【Spring Boot】SpringBoot整合Redis

SpringBoot整合Redis 1.添加maven依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 2.配置Redis连接 spring.redis.host=192.168.157.11 spring.re

我们的目标是什么?没有蛀牙!!! 257

springboot整合redis

超详解springboot整合redis!!!

Mr_yu_shao的博客 5103

SpringBoot整合Redis

今天我们简单使用下spring boot操作redis,废话不多说直接开始整; 环境准备 新建一个spring boot项目 选上这几个,我本地有sptingboot2.6.3版本,我就直接用那个了; 查看项目依赖是否装好 配置文件,其实也不用配,如果你没有配置你的redis,默认也是这个,像我这个默认就是这个都不用配 我们知道redis中有五大基本类型,今天我们就简单学学spri

hello_list的博客 9580

SpringBoot之SpringBoot整合Redis

SpringBoot整合Redis Spring Boot 集成Redis (1)添加redis的起步依赖 (2) 配置redis的连接信息 spring.redis.host=localhost spring.redis.port=6379 (3)注入RedisTemplate测试redis操作 @SpringBootTest class Demo06redisApplicationTests { @Autowired RedisTemplate<String, String

renVictory的博客 203

SpringBoot入门系列(七)Spring Boot整合Redis缓存

前面介绍了Spring Boot 中的整合Mybatis并实现增删改查,。不清楚的朋友可以看看之前的文章:https://www.cnblogs.com/zhangweizhong/category/1657780.html。 今天主要讲解Springboot整合Redis。Redis是目前使用最多的缓存,包括Spring Boot 中我们也是会用Redis做很多事情。那么今天就来说一说...

章为忠的专栏 3129

Spring Boot——整合Redis

Redis(Remote Dictionary Server)是一个开源的内存数据存储系统,它以键值对(key-value)的形式存储数据,并提供了多种数据结构的支持。Spring Boot简介。

秋书一叶的博客 8071

SpringBoot整合redis

步骤 https://redis.io/download 下载redis安装包,测试或生产环境用的都是linux,这里模拟linux环境 解压文件到指定目录 [root@hadoop03 soft]# tar -zxvf redis-5.0.5.tar.gz -C /usr/local 建立软连接 Linux下 ln 命令详解这是linux中一个非常重要命令。它的功能是为某一个文...

longzhutengyue的博客 2432
上一篇: java 参数对象在函数内被赋值问题
下一篇: mybatis 整合 mybatis-redis
knife1220
博客等级 码龄15年 33粉丝 176原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值