Spring Data Redis配置+源码解析

本文详细介绍了Spring Data Redis的配置和源码解析,从Spring Data Redis的基本概念到核心组件,包括RedisConnection、RedisConnectionFactory、RedisCacheManager等。深入探讨了Redis的缓存架构,并揭示了Spring如何通过RedisCache和RedisCacheWriter实现不同场景的缓存配置。
摘要由CSDN通过智能技术生成

Spring Data Redis配置+源码解析

Spring Data Redis简介

Spring-data-redis是spring大家族的一部分,提供了在srping应用中通过简单的配置访问redis服务,对reids底层开发包(Jedis, JRedis, and RJC)进行了高度封装,RedisTemplate提供了redis各种操作、异常处理及序列化,支持发布订阅,并对spring 3.1 cache进行了实现,全家桶之一

Spring对redis缓存的设计思想则更加精妙,更加全面,不得不说大佬终究还是大佬,Spring能够一统Java不是没有原因的

Spring Data Redis概念

首先须要了解几个具体类的概念:

  1. RedisConnection:

​ 提供了Redis通信的核心构建块,因为它处理与Redis后端通信。它还自动将底层连接库异常转换 为Spring一致的DAO异常层次结构,这样您就可以在不更改任何代码的情况下切换连接器,因为操作语义保持不变。(翻译自官网解释,其实简单理解下,就是用来连接Redis的)

  1. RedisConnectionFactory:

​ 是构建RedisConnection的工厂类

  1. RedisStandaloneConfiguration:

​ Redis标准配置,用来构建RedisConnectionFactory须要的必要参数,比如host;port; password

  1. RedisSentinelConfiguration:

​ Redis哨兵模式的相关配置

  1. RedisClusterConfiguration:

​ Redis集群模式的相关配置

  1. RedisCacheManager:

​ 顾名思义是Redis缓存管理器,是Spring基于Redis实现缓存的核心类

  1. RedisCacheConfiguration:

​ 是RedisCacheManager的具体个性化配置项

redis的缓存基本架构:

在这里插入图片描述

Spring Data Redis缓存源码实现

spring底层通过封装多个RedisCache来实现不同场景下的缓存配置,其成员变量如下:

public class RedisCache extends AbstractValueAdaptingCache {
   
	private final String name;
	private final RedisCacheWriter cacheWriter;
	private final RedisCacheConfiguration cacheConfig;
	private final ConversionService conversionService;
}

name:标识不同的缓存,类似分组的概念。

RedisCacheWriter:是对Redis底层操作的封装,我们是通过RedisCache的相关接口来执行redis命令的,而RedisCache内部又是通过RedisCacheWriter来间接操作redis。

RedisCacheConfiguration:前面说RedisCacheConfiguration是RedisCacheManager的具体配置信息,更准确的说其实是对应RedisCache中的配置信息,因为RedisCacheManager内部维护了一个由若干个RedisCacheConfiguration组成的Map,在其初始化时会通过这个Map组装生成对应的RedisCache。

public class RedisCacheManager extends AbstractTransactionSupportingCacheManager {
   
    private final RedisCacheWriter cacheWri
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值