# muiltiredis **Repository Path**: kevin__zhang/muiltiredis ## Basic Information - **Project Name**: muiltiredis - **Description**: 多个redis数据源动态配置,采用2种方式实现 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2021-07-02 - **Last Updated**: 2021-07-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # multiredis #### 介绍 多个redis数据源动态配置,采用2种方式实现: 1.采用BeanDefinitionRegistryPostProcessor以及InstantiationAwareBeanPostProcessor来实现 2.采用在注册RedisTemplateMap集合类时,手动注册RedisTemplate,并自定义名称注入注解,通过自定义注解进行注入. #### 软件架构 软件架构说明 #### 安装教程 1.下载 2.通过maven编译,或者导入ide 3.启动服务,默认端口8080 4.访问http://ip:8080/add http://ip:8080/get 测试连接是否有效 #### 使用说明 1. 配置在application.properties里面 ①需要配置默认的redis,通过redis.default.*来配置,配置参照spring.redis.* ②需要配置多数据源的配置,通过redis.multi.[数据源名].*,这里的数据源名称在spring容器里面对应的就是RedisTemplate的容器名称. 2. 默认的数据源是一方面是为了覆盖springboot的自动配置,一方面是在没有指定名称直接Autowired时有默认值,否则springboot会默认创建一个RedisTemplate. 3. 2种实现方式在使用的时候有点区别,第一种可以直接使用Autowired+Qualifier或者Resource来注入,第二种需要使用自定义的LazyInject注解来注入,需要传入injectName,另外两种方式都有创建一个MuiltiRedisTemplateMap的对象,该对象里面有所有的RedisTemplate对象. 4. 2种方式都有创建MuiltiRedisConnectionFactoryMap对象,通过该对象可以拿到对应的RedisConnectionFactory对象,底层使用的JedisConnectionFactory,和spring实现过程一致. 5. 如果针对某一个数据源需要做特殊配置,可以直接使用@Bean("redis名称")来创建一个RedisTemplate对象,注意"redis名称"需要和redis.multi.[数据源名]中的[数据源名]一样,这样配置之后在自动注入时会跳过自定义的配置,并放入到MuiltiRedisTemplateMap对象中,请参考MuiltiRedisAutoConfig中注释掉的configRedisTemplate2方法,一般来说我们只会修改RedisTemplate对象配置. 6. 在导入包使用的时候请把controller目录和ZyApplication删除,并将pom中的spring-boot-starter-web删除,这里为方便其他人测试加入的这2个,本身跟starter无关. #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request