【未完成】Redis(四)Spring Boot 整合 spring-boot-starter-data-redis

【SpringBoot】整合Redis(使用spring-boot-starter-data-redis) 前言 Jedis是Redis官方推荐的面向Java的操作Redis的客户端,而RedisTemplate是SpringDataRedis中对JedisApi的高度封装。SpringDataRedis相对于Jedis来说可以方便地更换Redis的Java客户端,比Jedis多了自动管理连接池的特性,方便与其他Spring框架进行搭配使用如:SpringCache。 Lettuce 和 Jedis 的都是连接Redis Server的客户端程序。Jedis在实现上是直连redis server,多线程环境下非线 阅读详情
AI摘要

本文详细介绍了Spring Boot整合Redis的高级配置方法,包括连接池管理、序列化策略选择、数据操作接口使用等,以及如何自定义RedisTemplate配置类以优化数据交互。

目录

一、spring-boot-starter-data-redis提供的功能

二、依赖和Redis配置

三、RedisTemplate配置及其相关方法

1、RedisTemplate介绍

2、RedisTemplate数据操作对象(重要)

3、Redis配置类RedisConfig(重要)

 3.1 序列化(推荐使用JSON方式,不建议jdk自带方式)


一、spring-boot-starter-data-redis提供的功能

1、连接池自动管理,提供了一个高度封装的“RedisTemplate”类

2、针对jedis客户端中大量api进行了归类封装,将同一类型操作封装为operation接口

  • ValueOperations:简单K-V操作
  • HashOperations:针对map类型的数据操作
  • ListOperations:针对list类型的数据操作
  • SetOperations:set类型数据操作
  • ZSetOperations:zset类型数据操作

3、提供了对key的“bound”(绑定)便捷化操作API,可以通过bound封装指定的key,然后进行一系列的操作而无须“显式”的再次指定Key,即BoundKeyOperations:

  • BoundValueOperations
  • BoundHashOperations
  • BoundListOperations
  • BoundSetOperations
  • BoundZSetOperations

4、将事务操作封装,有容器控制。

5、针对数据的“序列化/反序列化”,提供了多种可选择策略(RedisSerializer)

  • JdkSerializationRedisSerializer:POJO对象的存取场景,使用JDK本身序列化机制,将pojo类通过ObjectInputStream/ObjectOutputStream进行序列化操作,最终redis-server中将存储字节序列。是目前最常用的序列化策略。
  • StringRedisSerializer:Key或者value为字符串的场景,根据指定的charset对数据的字节序列编码成string,是“new String(bytes, charset)”和“string.getBytes(charset)”的直接封装。是最轻量级和高效的策略。
  • JacksonJsonRedisSerializer:jackson-json工具提供了javabean与json之间的转换能力,可以将pojo实例序列化成json格式存储在redis中,也可以将json格式的数据转换成pojo实例。因为jackson工具在序列化和反序列化时,需要明确指定Class类型,因此此策略封装起来稍微复杂。【需要jackson-mapper-asl工具支持】
  • OxmSerializer:提供了将javabean与xml之间的转换能力,目前可用的三方支持包括jaxb,apache-xmlbeans;redis存储的数据将是xml工具。不过使用此策略,编程将会有些难度,而且效率最低;不建议使用。【需要spring-oxm模块的支持】

二、依赖和Redis配置

1、maven依赖 

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- redis依赖commons-pool 这个依赖一定要添加 -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-pool2</artifactId>
</dependency>

2、application.yml配置

spring:
  redis:
    # Redis数据库索引(默认为0)
    database: 0
    # Redis服务器地址
    host: 127.0.0.1
    # Redis服务器连接端口
    port: 6379
    # Redis服务器连接密码(默认为空)
    password:
    # 连接超时时间(毫秒)
    timeout: 3000
    # 连接池配置
    pool:
      # 连接池最大连接数(使用负值表示没有限制)
      max-active: 8
      # 连接池中的最大空闲连接
      max-idle: 8
      # 连接池中的最小空闲连接
      min-idle: 0
      # 连接池最大阻塞等待时间(使用负值表示没有限制)
      max-wait: -1

三、RedisTemplate配置及其相关方法

1、RedisTemplate介绍

Spring封装了RedisTemplate对象来进行对Redis的各种操作,它支持所有的Redis原生的api。RedisTemplate位于spring-data-redis包下。RedisTemplate提供了redis各种操作、异常处理及序列化,支持发布订阅,并对spring 3.1 cache进行了实现。

注意 RedisTemplate是一个key和value都是泛型的模板类,一般情况下key为String类型,如:RedisTemplate<String,Object>。此外,如果没特殊情况,切勿定义成RedisTemplate<Object, Object>,否则根据里氏替换原则,使用的时候会造成类型错误 

StringRedisTemplate 与 RedisTemplate

  • 两者的关系是StringRedisTemplate继承RedisTemplate。

  • 两者的数据是不共通的;也就是说StringRedisTemplate只能管理StringRedisTemplate里面的数据,RedisTemplate只能管理RedisTemplate中的数据。

  • SDR默认采用的序列化策略有两种,一种是String的序列化策略,一种是JDK的序列化策略。

    StringRedisTemplate默认采用的是String的序列化策略,保存的key和value都是采用此策略序列化保存的。

    RedisTemplate默认采用的是JDK的序列化策略,保存的key和value都是采用此策略序列化保存的。

2、RedisTemplate数据操作对象(重要)

RedisTemplate 操作数据的对象有 opsForXXX 和 boundXXXOps 两种(XXX为value的类型)

  • opsForXXX:获取一个operator,但是没有指定操作的对象(key),可以在一个连接(事务)内操作多个key以及对应的value
  • boundXXXOps:后者获取了一个指定操作对象(key)的operator,在一个连接(事务)内只能操作这个key对应的value

2.1、opsForXXX

针对jedis客户端中大量api进行了归类封装,将同一类型操作封装为operation接口 

其实这里的ops相当于options, 是RedisTemplate对各种不同的Redis数据类型进行操作

获取对象方法(无参数)返回的操作对象描述
RedisTemplate.opsForValue()ValueOperations<String, Object>操作字符串
RedisTemplate.opsForHash()HashOperations<String, String, Object>操作Hash
RedisTemplate.opsForList()ListOperations<String, Object>操作List
RedisTemplate.opsForSet()SetOperations<String, Object>操作Set
RedisTemplate.opsForZSet()ZSetOperations<String, Object>操作有序Set 

关于计数的API(increment)有一个bug,需要各位使用中注意,通过increment计数以后,通过get方式获取计数值的时候可能会抛出EOF异常(和本地的jdk以及redis的编译版本有关),可以考虑使用boundValueOps(key).get(0,-1)获取计数值。 

2.2、boundXXXOps

提供了对key的“bound”(绑定)便捷化操作API,可以通过bound封装指定的key,然后进行一系列的操作而无须“显式”的再次指定Key,即BoundKeyOperations:

获取对象方法(有参数)返回的操作对象描述
RedisTemplate.boundValueOps(K key)BoundValueOperations<String, Object>操作字符串
RedisTemplate.boundHashOps(K key)BoundHashOperations<String, String, Object>操作Hash
RedisTemplate.boundListOps(K key)BoundListOperations<String, Object>操作List
RedisTemplate.boundSetOps(K key)BoundSetOperations<String, Object>操作Set
RedisTemplate.boundZSetOps(K key)BoundZSetOperations<String, Object>操作有序Set 


3、Redis配置类RedisConfig(重要)

主要用来配置 key 和 value 的序列化及加载配置文件中的相关参数

新建一个redisConfig类,进行相关bean的配置(代码向下看)

 3.1 序列化(推荐使用JSON方式,不建议jdk自带方式)

spring-redis中使用了RedisTemplate来进行redis的操作,通过泛型的K和V设置键值对的对象类型。这里使用了string作为key的对象类型,值为Object。

对于Object,spring-redis默认使用了jdk自带的序列化,不推荐使用默认(可读性太差)

建议使用 JSON 的序列化方式

当我们的数据存储到Redis的时候,我们的键(key)和值(value)都是通过Spring提供的Serializer序列化到数据库的。RedisTemplate默认使用的是JdkSerializationRedisSerializer,StringRedisTemplate默认使用的是StringRedisSerializer。

Spring Data JPA 为我们提供了下面的 Serializer:

GenericToStringSerializer、Jackson2JsonRedisSerializer、JacksonJsonRedisSerializer、FastJsonRedisSerializer、JdkSerializationRedisSerializer、OxmSerializer、StringRedisSerializer

序列化方式对比:

  • 【不推荐】JdkSerializationRedisSerializer: 使用JDK 提供的序列化功能。 优点是反序列化时不需要提供类型信息(class),但缺点是需要实现Serializable接口,还有序列化后的结果非常庞大,是JSON格式的5倍左右,这样就会消耗redis服务器的大量内存。
  • 【推荐】Jackson2JsonRedisSerializer: 使用Jackson 库将对象序列化为 JSON 字符串。优点是速度快,序列化后的字符串短小精悍,不需要实现Serializable接口。但缺点也非常致命,那就是此类的构造函数中有一个类型参数,必须提供要序列化对象的类型信息(.class对象)。 通过查看源代码,发现其只在反序列化过程中用到了类型信息
  • 【推荐】FastJsonRedisSerializer: 使用FastJson 库将对象序列化为 JSON 字符串。优点是速度快,序列化后的字符串短小精悍,不需要实现Serializable接口。

 可能会遇到的问题:

  1. RedisTemplate的 key 指定成 StringRedisSerializer 序列化会报类型转换错误,如XXX类不能转换成String。
  2. 使用 Jackson2JsonRedisSerializer 序列化的时候,如果实体类上没有set方法反序列化会报错。

代码示例: 

package com.marvin.demo.config;

import com.alibaba.fastjson.support.spring.FastJsonRedisSerializer;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper;
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.*;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;

/**
 * reids 相关bean的配置
 */
@Configuration
public class RedisConfig {
	/**
	 * redisTemplate相关配置
	 * @param factory
	 * @return
	 */
	@Bean
	public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
		RedisTemplate<String, Object> template = new RedisTemplate<>();
		// 配置连接工厂
		template.setConnectionFactory(factory);

		/** 下面是设置序列化KEY VALUE的方式(默认不设置则使用JDK的序列化方式)*/
		/** 
		 * 方式一:使用Jackson2JsonRedisSerializer来序列化和反序列化redis的value值(序列化方式选其一)
		 */
		Jackson2JsonRedisSerializer jacksonSeial = getJeckson2Serializer();
		// 序列化和反序列化redis时:key值使用StringRedisSerializer,value值使用Json序列化
		// 设置字符串(String)类型 key 和value序列化模式
		template.setKeySerializer(new StringRedisSerializer());
		template.setValueSerializer(jacksonSeial);
		// 设置散列(Hash)类型 key 和value序列化模式
		template.setHashKeySerializer(new StringRedisSerializer());
		template.setHashValueSerializer(jacksonSeial);


		/** 
		 * 方式二:使用fastjson来做value的序列化(序列化方式选其一)
		 */
		// 序列化和反序列化redis时:key值使用StringRedisSerializer,value值使用Json序列化
		// 设置字符串(String)类型 key 和value序列化模式
//		template.setKeySerializer(new StringRedisSerializer());
//		template.setValueSerializer(new FastJsonRedisSerializer(Object.class));
		// 设置散列(Hash)类型 key 和value序列化模式
//		template.setHashKeySerializer(new StringRedisSerializer());
//		template.setHashValueSerializer(new StringRedisSerializer());


		/** 必须执行这个函数,初始化RedisTemplate (初始化操作)加载配置后执行*/
		template.afterPropertiesSet();
		return template;
	}


	/** 
	 * Jackson2JsonRedisSerializer序列化配置
	 */
	private Jackson2JsonRedisSerializer getJeckson2Serializer(){
		Jackson2JsonRedisSerializer jacksonSeial = new Jackson2JsonRedisSerializer(Object.class);
		ObjectMapper om = new ObjectMapper();
		// 指定要序列化的域,field,get和set,以及修饰符范围,ANY是都有包括private和public
		om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
		// 指定序列化输入的类型,类必须是非final修饰的,final修饰的类,比如String,Integer等会跑出异常
		om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
		jacksonSeial.setObjectMapper(om);
		return jacksonSeial;
	}

	/**
	 * 对redis字符串类型数据操作
	 * @param redisTemplate
	 * @return
	 */
	@Bean
	public ValueOperations<String, Object> valueOperations(RedisTemplate<String, Object> redisTemplate) {
		return redisTemplate.opsForValue();
	}
	/**
	 * 对hash类型的数据操作
	 * @param redisTemplate
	 * @return
	 */
	@Bean
	public HashOperations<String, String, Object> hashOperations(RedisTemplate<String, Object> redisTemplate) {
		return redisTemplate.opsForHash();
	}
	/**
	 * 对链表类型的数据操作
	 * @param redisTemplate
	 * @return
	 */
	@Bean
	public ListOperations<String, Object> listOperations(RedisTemplate<String, Object> redisTemplate) {
		return redisTemplate.opsForList();
	}
	/**
	 * 对无序集合类型的数据操作
	 * @param redisTemplate
	 * @return
	 */
	@Bean
	public SetOperations<String, Object> setOperations(RedisTemplate<String, Object> redisTemplate) {
		return redisTemplate.opsForSet();
	}
	/**
	 * 对有序集合类型的数据操作
	 * @param redisTemplate
	 * @return
	 */
	@Bean
	public ZSetOperations<String, Object> zSetOperations(RedisTemplate<String, Object> redisTemplate) {
		return redisTemplate.opsForZSet();
	}
}

注意:

1、RedisTemplate 必须执行 afterPropertiesSet() 函数,这是初始化操作,加载配置后执行

SpringBoot快速操作Redis数据 SpringBoot快速操作Redis数据在SpringBoot框架中提供了spring-boot-starter-data-redis的依赖组件进行操作Redis服务,当引入了该组件之后,只需要配置Redis的配置即可进行链接Redis服务并且进行操作Redis服务数据。针对于不同的版本有了不同的底层客户端的支持的底层客户端框架是不同的:目前常见的客户端为Jedis和Lettuce。低版本SpringBoot支持的JedisJedis是很常用的Redis的Java 实现的客户端。 阅读详情

相关推荐

SpringBoot整合连接Redis集群

第一步,新建项目maven项目,添加依赖 (1)本文所采用的SpringBoot的版本如下 org.springframework.boot spring-boot-starter-parent 2.0.2.RELEASE (2)加入Redis相关依赖 org.springframework.boot spring-boot-starter-data-redis redis.clients jedis 第二步,applicati

没啥可说的,一切都看博客吧 1349

SpringBoot揭密:spring-boot-starter-data-redis

一. POM解析 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <version>2.0.0.RELEASE</version> <scope>comp

zhangweiocp的专栏 1万+

Spring Boot之Starter依赖

在Spring Boot中,Starter依赖是一个非常重要的概念,它极大地简化了Spring应用的配置和依赖管理。Starter依赖本质上是一组方便的依赖描述符,你可以将它们添加到你的项目中,以获得Spring Boot对特定技术的支持。这些依赖描述符包含了所有你需要开始使用某个技术所需的库,并且已经通过合理的默认配置进行了设置。

一个老Java开发的自白 2027

springboot 整合 redis

文章目录jedis导入依赖 视频链接 官网:https://redis.io/ 中文官网:http://redis.cn/ jedis java 操作 jedis ,jedis 是 redis 官方推荐的 java 连接开发工具!使用 Java 操作 redis 中间件 导入依赖 新建 maven 项目,导入 jedis 依赖 <dependencies> <dependency> <groupId>redis.client

不懂一休 1万+

使用spring-boot-starter-data-redis访问redis入门示例(默认使用Lettuce)

1、 引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 2、redis基本配置 在applicati...

西瓜游侠的博客 3678

Spring Boot2 系列教程(二十六)Spring Boot 整合 Redis

Spring Data Redis 针对 Redis 提供了非常方便的操作模板 RedisTemplate。这是 Spring Data 擅长的事情,那么接下来我们就来看看 Spring Boot 中 Spring Data Redis 的具体用法。方案一:Spring Data Redis。

2501_90252669的博客 1011

Spring Boot:通过spring-boot-starter-data-redis源码了解starter和autoconfigure模块

注:本文Spring Boot为2.X版本 在Spring Boot中,官方提供了`spring-boot-autoconfigure`包和starter包用来帮助我们简化配置,比如之前要建一个Spring mvc项目,需要我们配置web.xml,dispatcherservlet-servlet.xml,applicationContext.xml等等

404 Not Found 3万+

51单片机基础知识

前言 周末闲着无聊,以后定时更新一期关于51单片机的学习案例,以供大家平时参考使用。至于单片机,你可以理解为人的大脑,而人各项身体器官的运作需要意识给到大脑,然后大脑再驱动我们的中枢神经进行相应的动作,这里的意识可以理解为我们要写的程序,而人的器官相当于各种输出设备,例如我们以后要学的LED、电机、各种传感器等等。学好单片机能让你找到一份相对不错的工作,当然越可观的东西也是要付出相应努力的。 一、51单片机是什么? 通常我们一说到 51 单片机,指的都是兼容IntelMCS-51体系架构的一系列单片机,而

qq_43537819的博客 6905

Spring Boot 整合Redis (一) spring-boot-starter-data-redis

使用lettuce连接池 1.maven依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> &l...

一生一世一双人的博客 4万+

1991-2020年气候背景数据集

2011 年,国家气象信息中心对 1951-2010 年 2400 余个地面站气温、气压、降水、湿度、日照等 19 大要素项的定时观测资料和日极值资料中由数字化过程中引起的系统性问题(例如数字化遗漏、整段拷贝等问题)进行质量检测、质量控制和错误数据的更正,形成较高质量的地面基础资料集。1991-2020年中国地面气候值数据集提供了中国2438个站点的气温、降水、气压、风向风速、相对湿度、水汽压、云、天气现象、能见度、蒸发、积雪、地温、冻土、日照共14个要素的气候背景信息。数据时间:30年平均。

地球资源数据云的官方博客 1597

MTK平台 MT6789 烧录 efuse 3.0 Configuration SOP

=====================生成cert1和cert2 key===============================================生成efuse key相关文件===========================================签名DA==========================================================正常编译。=====================Security3.0 的SOP 说明。

a785722173的博客 2332

spring-boot整合Redis 超详细

spring-boot整合Redis 1、新建一个springboot的项目,我们选择官方脚手架工具进行创建,这里不用默认的官网,选择https://start.aliyun.com/ 创建非常快。JDK版本选择好后 Next 2、这里写好项目名和包名后点击 Next 3、这里将常用的依赖打勾 4、这里也是 5、这里也是 勾完后点击next 6、如果下图两个地方不一样,记得改成一样的,点击finish 7、点击右下角的 Import Changes,项目结构如下 8、我们到pom.xml文件找到

qq_41915921的博客 1万+

表面声波滤波器——叉指换能器设计实战:从关键参数到结构选型

本文深入探讨了表面声波滤波器核心部件叉指换能器的实战设计流程。从目标驱动出发,详细解析了如何根据中心频率确定关键参数指宽,并权衡叉指对数对带宽和插入损耗的影响。文章进一步介绍了通过变迹加权优化频率响应,并对比了梯形结构与纵向耦合谐振滤波器等主流结构选型的适用场景与优缺点,为工程师提供从理论计算到仿真验证的完整设计指南。

weixin_29216353的博客 105

spring boot 通过 spring-boot-starter-data-redis 整合redis

redis依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <version>2.1.6.RELE...

白桦栎的博客 1875

关于旋转矩阵的左乘与右乘问题

最近在阅读框架源码时被旋转矩阵左乘右乘绕的云里雾里,故写下一篇记录一下,以防自己不长记性。

菜鸡正在学习 1万+

ISP-全局色调映射(GTM)算法简单实现

色调映射算法,色彩空间转换LAB

notgoodenouf的博客 2241

Spring Boot 整合Redis :spring-boot-starter-data-redis

1.添加maven依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <!-- redis依赖co...

allen_csdns的博客 4959

用电脑通过网口控制keysight示波器

Keysight HD304MSO示波器提供1GHz带宽、14位高精度ADC及10.1英寸触控屏,支持50μV低噪声信号捕获和1.3M波形/秒刷新率。配备4通道探头、逻辑分析仪接口及100Mpts存储深度,含故障诊断、FFT等高级功能。通过网线连接电脑安装TightVNC软件(示波器IP为169.254.163.24)可实现远程控制,相比U盘传输更高效。(149字)

johnboat的专栏 1136

SringBoot中Spring-data-redis和Spring-boot-starter-data-Redis的关系及所想所感

首先,要申明的是对于很多人来说,可能这并不是一个问题,但是为什么要写这篇博客呢?并不是说这个问题本身的价值很大,而是我Get到了解决问题的新方法和大家分享一下。 1、解决问题 首先先公布这个问题的答案,即SringBoot中Spring-data-redis和Spring-boot-starter-data-Redis的关系。 <dependency> <gro...

Champion-Dai 5088

【一 扣子客户案例合集】【 1.3 识典古籍基于扣子智能助手的古籍数字化全流程技术解析】

古籍数字化智能处理系统全流程解析 本文详细介绍了基于扣子智能助手的古籍数字化解决方案,核心技术包括: 多层级架构设计:采用"云-边-端"三层次架构,整合高精度扫描设备与AI处理模块,实现从物理古籍到结构化数据的全流程自动化。 智能图像处理:通过12道预处理工序(包括畸变校正、污渍去除和对比度增强)处理古籍图像,采用改进的EAST算法和ViT模型实现高精度文字检测与识别,准确率达98.7%。 NLP增强处理:结合Transformer-XL预训练模型和N-gram语言模型进行文本校正,基于

商务合作|问题讨论|交流学习 请联系作者微信,加微信请务必注明来意,博客主页有联系方式 1441

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

如何使用spring-boot-starter-data-redis并自定义配置类

1、引入spring-boot-starter-data-redis依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 由于SpringBoot2.0默认采用Lettuce客户端来连接Redis服务端的。并且

asd43211234的博客 4965

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

spring-boot-starter-data-redis 与 org.redisson 区别 联系

本文对比分析了Spring Boot中两种Redis操作框架:spring-boot-starter-data-redis和Redisson。前者是Spring官方提供的Redis数据访问抽象层,基于Lettuce/Jedis实现,提供RedisTemplate等基础操作,适合常规缓存和键值存储;后者是第三方高性能Redis客户端,提供分布式锁、队列、集合等高级功能。两者可以共存但职责不同,建议根据需求选择:仅需基础功能时使用Spring Data Redis;需要分布式功能时引入Redisson;若同时需

惊鸿一博 1374

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

redis、jedis、RedisTemplate、Spring-data-redis、spring-boot-starter-data-redis和redis desktop manager区别

redis、jedis、RedisTemplate、Spring-data-redis、spring-boot-starter-data-redis和redis desktop manager区别

GarfieldGosling的博客 2315

【云原生】SpringCloud-Spring Boot Starter使用测试

Spring Boot Starter 是在 SpringBoot 组件中被提出来的一种概念、简化了很多烦琐的配置、通过引入各种 Spring Boot Starter 包可以快速搭建出一个项目的脚手架。

java李阳勇的博客 8582

spring-boot-starter-data-redis

1.spring-boot-starter-data-redis默认是使用lettuce去访问redis。2.内置了StringRedisTemplate和RedisTemplate,应用可以直接使用。

w_t_y_y的博客 1058

SpringBoot 自动配置 (2) - 自己写个 Starter 二次封装 spring-boot-starter-data-redis

依托自动配置原理, 把 Redis 的工具以及配置等等一切封装成 Starter.

O_o 2959
上一篇: 区块链浅析(未完成版)
下一篇: 正则表达式常用案例(收集中)
Marvin-Fox
博客等级 码龄11年 190粉丝 100原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值