Spring Boot2.0之 整合Redis集群

Spring Boot2 系列教程(二十八)Spring Boot 整合 Session 共享 由于文案过于长,在此就不一一介绍了,这份Java后端架构进阶笔记内容包括:Java集合,JVM、Java并发、微服务、SpringNetty与 RPC 、网络、日志 、Zookeeper 、Kafka 、RabbitMQ 、Hbase 、MongoDB、Cassandra 、Java基础、负载均衡、数据库、一致性算法、Java算法、数据结构、分布式缓存等等知识详解。本知识体系适合于所有Java程序员学习,关于以上目录中的知识点都有详细的讲解及介绍,掌握该知识点的所有内容对你会有一个质的提升, 阅读详情

Spring Boot2.0之 整合Redis集群

项目目录结构: 

 pom:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>redis</groupId>
  <artifactId>com.toov5.redis</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.0.RELEASE</version>
	</parent>
	<dependencies>
		<!-- SpringBoot web 核心组件 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-redis</artifactId>
		</dependency>
	</dependencies>


	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<maimClass>
						com.itmayiedu.controller.IndexController</maimClass>
				</configuration>
				<executions>
					<execution>
						<goals>
							<goal>repackage</goal>
						</goals>
					</execution>
				</executions>

			</plugin>
		</plugins>
	</build>
  
  
</project>

yml:

spring:
  redis:
    database: 0    
#    host:  192.168.91.3
#   port:  6379
#    password:  123
    jedis:
      pool:
        max-active: 8
        max-wait: -1
        max-idle: 8
        min-idle: 0
    timeout: 10000
    cluster:
      nodes:
        - 192.168.91.5:9001
        - 192.168.91.5:9002
        - 192.168.91.5:9003
        - 192.168.91.5:9004
        - 192.168.91.5:9005
        - 192.168.91.5:9006
     
 #####用代码获取配置文件 灵活获取密码方案         

service

package com.toov5.service;

import java.util.Set;
import java.util.concurrent.TimeUnit;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;

@Component
public class RedisService {

    @Autowired
    private StringRedisTemplate stringRedisTemplate;
    //这样该方法支持多种数据类型 
    public void set(String key , Object object, Long time){
//        //开启事务权限
//        stringRedisTemplate.setEnableTransactionSupport(true);
//        try {
//            //开启事务
//            stringRedisTemplate.multi();
//            
//            String argString =(String)object;  //强转下
//            stringRedisTemplate.opsForValue().set(key, argString);
//            
//            //成功就提交
//            stringRedisTemplate.exec();
//        } catch (Exception e) {
//            //失败了就回滚
//            stringRedisTemplate.discard();
//            
//        }
        if (object instanceof String ) {  //判断下是String类型不
            String argString =(String)object;  //强转下
            //存放String类型的
            stringRedisTemplate.opsForValue().set(key, argString);
        }
        //如果存放Set类型
        if (object instanceof Set) {
            Set<String> valueSet =(Set<String>)object;
            for(String string:valueSet){
                stringRedisTemplate.opsForSet().add(key, string);  //此处点击下源码看下 第二个参数可以放好多
            }
        }
        //设置有效期
        if (time != null) {
            stringRedisTemplate.expire(key, time, TimeUnit.SECONDS);
        }
        
    }
    //做个封装
    public void setString(String key, Object object){
        String argString =(String)object;  //强转下
        //存放String类型的
        stringRedisTemplate.opsForValue().set(key, argString);
    }
    public void setSet(String key, Object object){
        Set<String> valueSet =(Set<String>)object;
        for(String string:valueSet){
            stringRedisTemplate.opsForSet().add(key, string);  //此处点击下源码看下 第二个参数可以放好多
        }
    }
    
    public String getString(String key){
     return    stringRedisTemplate.opsForValue().get(key);
    }
    
    
}

controller

package com.toov5.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.toov5.service.RedisService;

@RestController
public class IndexController {
  @Autowired
  private RedisService redisService;
    
   @RequestMapping("/setString")
   public String setString(String key, String value){
       redisService.set(key, value, 500l); //超时时间500s   l表示long型
       return "成功";
   }
   
   @RequestMapping("get")
   public String get(String key){
       return redisService.getString(key);
   }
}

启动

package com.toov5.app;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication(scanBasePackages={"com.toov5.*"})
public class app {
 public static void main(String[] args) {
    SpringApplication.run(app.class, args);
}
}

结果:

 

 

 

Redis集群的几个注意事项

 

Redis集群使用CRC16对key进行hash,集群固定使用16384对hash出来的值取模。因为取模结果一定在16384之内,所以集群中的sharding(分片)实际就是如何将16384个值在n个主节点间分配(从节点是主节点的近似副本,原因见3),如何分配取决于你的配置。

Redis生产级集群需要容灾,为此,一般部署为n个主+n*m个从。n大小主要取决于单机性能,m大小主要取决于机器稳定性。

Redis集群是弱一致性的,此处的一致,主要指主从之间的数据一致性。主要是因为redis在做数据更新时,不要求主从数据同步复制一定要成功。

集群最小的主数量为3,主数量应为奇数,以便做选举判决。

 

redis03---一主二从、主从切换、哨兵模式。springboot整合redis。雪崩、穿透、击穿。集群,三主三从。springboor整合redis连接集群 在6380 和 6381上,分别执行slaveof ip 6379 ,让当前主机为slave从机,让6379为master主机。3、改造之前项目,添加redis支持,将小程序中页面列表数据(共享数据)通过redis缓存。 阅读详情

相关推荐

[springboot]整合连接redis单例、哨兵及集群模式

当redis 哨兵或cluster集群搭建好之后,在Spring Boot应用中你该如何去理解这些redis实例及集群模式,如何连接及使用这些redis实例。

字母哥博客 4456

springboot2整合redis集群(lettuce连接池)

springboot2整合redis集群(lettuce连接池)引入相关jar包配置==application.yml==文件添加配置类测试 引入相关jar包 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.6.RELEASE&lt

qq_33334411的博客 1179

【微服务】springboot整合redis哨兵集群使用详解

springboot整合redis哨兵集群使用详解

congge 6715

springboot2.0 + redis集群配置

因为项目中使用到了redis,并且是集群部署,之前做过单机版的redis整合,下面说一下redis集群的整合过程。

project_sun的博客 1899

springboot整合redis集群零配置

Springboot整合Redis集群,零配置方式;另外用AOP实现了操作缓存的三套自定义注解,有兴趣的小伙伴可以试试看.

springboot整合redis集群、freemarker模板和多索引库solr,同时将redis集群作mybatis的二级缓存

springboot整合redis集群和多索引库solr,同时将redis集群作mybatis的二级缓存源代码

springboot2.0 整合 redis-cluster集群

1. 首先引入依赖pom <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <version>2.0.0.RELEASE</version> </dependency> 2.编写redis工具类 .

大树叶 技术专栏 492

Python实战:用SkillMetrics库5分钟搞定泰勒图绘制(附完整代码)

本文详细介绍了如何使用Python的SkillMetrics库快速绘制专业泰勒图,以直观对比多个模型的预测性能。通过整合相关系数、标准差和中心化均方根误差三个核心指标,该工具能帮助数据科学家和研究者高效完成模型评估与可视化,提升分析报告质量。文章提供了从环境配置、数据准备到高级定制与子图对比的完整代码示例。

7z8x2c4v6b9的博客 372

SpringBoot 整合 Redis

5. 定制化 LettuceConnectionFactory。3. 定制化redisTemplate。4. 定制化缓存管理。

m0_57801749的博客 2297

生物信息学工具链搭建:用conda一键搞定MCScanX所有依赖(Ubuntu20.04实测)

本文详细介绍了在Ubuntu20.04系统上使用conda一键部署MCScanX及其所有依赖的高效方法,解决了传统源码编译安装中的依赖冲突问题。通过conda环境管理工具,研究者可以快速搭建生物信息学工具链,实现基因组共线性分析的高效运行,显著提升研究效率。

backprop5master的博客 247

项目安全等保测评加固手册

安全等级测评的目的是通过对目标系统在安全技术及管理方面的测评,对目标系统的安全技术状态及安全管理状况做出初步判断,给出目标系统在安全技术及安全管理方面与其相应安全等级保护要求之间的差距。测评结论作为委托方进一步完善系统安全策略及安全技术防护措施依据!!

菜鸟运维升级之路 2416

记springboot整合redis集群

springboot整合redis的cluster集群

weixin_38117908的博客 1238

【脚本篇】---spyglass lint脚本

【代码】【脚本篇】---spyglass lint脚本。

冬瓜 6356

Spring Boot2.0+Oauth2.3.3+spring-data-redis+lettuce整合史上最全,Token的redis集群存储

文章目录token集群存储遇到的坑Lettuce 和 jedis的区别和练习引入Lettuce引入Lettuce,并配置Template设计template工具类报错: NoSuchMethod,redis.connection.RedisConnection.set([B[B)V配置令牌配置MyredisTokenStore配置认证处理器自定义认证处理器自定义密码编码器 对于新技术的不断追求中,...

fly_miqiqi的博客 1231

图像处理基础 || (一) python 读取图像的常用方式

图像的读取与保存是图像处理或计算机视觉领域中最基本的操作,python中有众多的库支持图像的读取、显示与存储,常用的库包括 matplotlib、skimage 和 Pillow 库。

weixin_40234309的博客 5689

Python爬虫实战:构建药监局药品批准信息本地查询系统

在医药信息化时代,药品批准信息的快速查询对于医药从业者、研究人员和普通消费者都具有重要意义。国家药品监督管理局(NMPA)提供了官方的药品查询系统,但有时我们需要建立本地数据库以便批量分析或离线查询。本文将详细介绍如何使用Python爬虫技术,结合最新的异步爬虫框架和技术栈,构建一个完整的药监局药品信息本地查询系统。本系统将实现以下功能:自动化爬取药监局官网的药品批准信息数据清洗和结构化存储建立本地查询接口数据定期更新机制pythonimport os"""药品类型枚举"""

2201_76125261的博客 728

springboot整合redis-RedisTemplate集群模式

本文介绍了SpringBoot整合Redis集群模式的方法,主要内容包括:1)搭建Redis集群环境;2)引入SpringBoot的Redis依赖;3)配置集群连接参数,如节点地址、密码、连接池和刷新策略等;4)自定义RedisTemplate的Bean以解决序列化问题,配置了String类型的key序列化和JSON格式的value序列化。文章提供了详细的YAML配置示例和Java配置类代码,并说明了各参数的作用,适用于SpringBoot 3.2.0和Redis 7.0.0环境。

shuai的博客 1295

【HAL库】STM32CubeMX开发----STM32F407----ETH+LWIP----TCPclient客户端

STM32F407开发板 为TCPclient客户端,PC端 为TCPserver服务端,相互之间的发送和接收实验。

MQ0522的博客 3048

redis5.0集群搭建实战,spring-boot整合redis集群测试

1.下载redis5.0.2 redis-5.0.2 2.安装 tar -zxvf redis-5.0.2.tar.gz cd redis-5.0.2 make &amp;amp;&amp;amp; make install 3.创建并使用集群配置 创建redis-cluster目录和相应的配置目录 mkdir redis-cluster cd reids-cluster mkdir 7000 70001 70...

qq_23624587的博客 1141

Linux Kernel入门到精通系列讲解(RV-Kernel 篇) 5.3 从零移植 busybox,基于RISC-V

上一章节我们已经成功启动了`Ubuntu`,但是由于`Ubuntu`占用系统空间过大,所以我转向占用较小的`busybox`,预计就占用`30M`左右。开始移植busybox,基于riscv64

DSMGUOGUO的博客 856

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

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

SpringBoot整合Redis集群版本问题

QUESTION:SpringBoot整合Redis集群版本问题? ANSWER: 版本依赖: <dependencies> <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-redis --> ...

岁月求索 409

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

redis学习系列(二)--spring boot整合Redis集群

spring boot整合Redis集群 开发 项目地址 https://gitee.com/zhenhai_zheng/springboot_rediscluster.git 添加依赖,加载Jedis org.springframework.boot spring-boot-starter-data-redis 添加redis配置 springbo

Destiny宿命的博客 2万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

springBoot整合redis集群,一站到底

redis集群搭建,以及整合到SpringBoot中

sinat_43097407的博客 4594

spring boot 整合redis

1.简介spring boot提供了spring-data-redis库来整合redis的操作,并通过简单的配置信息实现与redis的整合。2.准备工作安装redis缓存数据库,安装可视化工具,推荐使用:rdm。3.redis简介REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。 Redis是一个开源的使

深存少年梦 7134
上一篇: RedisCluster集群搭建
下一篇: 关于redis的思考
Art&Code
博客等级 码龄7年 77粉丝 554原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值