Redis实践(8)Redisson 简单实践

Redisson真是的非常的高大上(深奥),除了对Redis有一些了解之外,对分布式也要有深刻理解,而且想要使用起来毫不费力还必须对Java有深厚的功底,特别是对JUC要有一定的掌握,本次也是兴趣所及花了一些业余时间来略挖一二,主要也是随着个人掌握技能的程度和兴趣所及,进行了简单的几个示例,详细如下。 1.集群节点 /** *测试redis的基本信息 * *@authorchendd *@date2023/5/2122:30 */ publicclassRedisContextBasicTestextendsBaseTest{ @Resource privateRedissonredisson; @Test publicvoidcontextRedissonConfig(){ Configconfig=this.redisson.getConfig(); List<String>nod...

文章分类:经验分享 技术知识

Redis

Redis实践(7)Redisson 简单介绍

1.基本介绍 前文已经挣扎着折腾了许多的Redis相关技术知识了,也耗费了我巨多的业余时间,终于来到redisson的介绍了,计划随便写写让我的Redis实践之旅画个句号吧,毕竟惰性还是有很大的,懒得再深研了,后续有机会继续深挖 据我所知在Java连接redis的客户端框架有三款,分别是Jedis、Lettuce、Redisson,Jedis在SpringBoot 2.x已经不推荐使用了,所以再在哪里看到关于使用Jedis连接的代码时可快速跳过,推荐使用异步非阻塞的Lettuce框架,后者性能效率更优,Jedis和Lettuce主要是为了操作redis的Api框架,而redisson则明显是更加高级的玩法,它的重点并不在于对redis的提供基本操作,而是以redis为基础服务,在Java实用工具包中常用接口的基础上,为使用者提供了一系列具有分布式特性的常用工具类和组件,使得原本作为协调单机...

文章分类:经验分享 技术知识

Redis

Redis实践(6)SpringBoot Data Redis Cluster架构集成

前文中使用3台服务器的6个Redis节点来搭建了一套Cluster模式的集群架构,本篇主要来使用SpringBoot Data Redis项目环境来项目集成它,还是那句话只有以SpringBoot项目环境集成后的东西才是雷打不动应该追而求之的,详见下文。 1.maven坐标 与前文中的SpringBoot Data Redis项目集成主从架构的Redis一致,maven坐标完全一致,此处就不再贴出了。 2.application.yml server: port:8080 servlet: context-path:/ spring: redis: database:1 password:chendd connect-timeout:5s#连接超时时间 timeout:5s#读取超时时间 lettuce: pool: enabled:true max-active:16#最大连接数据库连...

文章分类:经验分享 技术知识

Redis

Redis实践(5)Cluster模式高可用架构

Redis的高可用架构包含主从复制、Sentinel哨兵和Cluster机制,而在前文中大量的实践了主从模式的高可用架构下的相关实现,也讲述到了这种模式的几个劣势,所以基于主从复制架构响应的实现告一段落了,而哨兵模式的高可用方案在前几年初期学习Redis时认为太过复杂,学习难度较大,所以本批次的实践将跳过哨兵模式,直接拥抱更科学的Cluster模式,前文提出的主从架构模式劣势参考如下: (1)所有从机的数据依赖主机节点,主节点不能宕机,否则主节点数据的写入将不可用,从节点的读取尚可,可用性较低; (2)主节点的写入压力仍然存在,从节点为只读模式无法分担写入压力; 1.哨兵(Sentinel)模式 Redis Sentinel 的高可用性是非集群Redis的高可用,Redis Sentinel 在不使用Redis Cluster时为 Redis 提供高可用性。Redis Sentinel 还...

文章分类:经验分享 技术知识

Redis

Redis实践(4.6)SpringBoot 测试主从数据序列化

前文中使用SpringBoot Data Redis项目集成了Redis的主从架构接入,本篇主要来测试一下整合后从项目中使用RedisTemplate操作redis相关的API,实现数据存储和读取的序列化实现,前文的工具类提供了基于StringRedisTemplate和RedisTemplate的两种实现,仔细一些会发现《Redis实践(4.5)SpringBoot 测试数据类型读写》中涉及的数据类型多数为简单的字符串类型,虽然任何数据类型在存储时都可以使用String类型存储,取出来自己在用JSON来解析进行类型二次转换,但是这种实现让人感觉到不够优雅,所以本文主要就是基于List<User>结构的数据类型进行序列化,关注对象类型数据的存储和获取的优雅程度,详见下文。 1.Bo定义 /** *定义User对象,使用多种数据类型 */ publicstaticclassUser{ pri...

文章分类:经验分享 技术知识

Redis

Redis实践(4.5)SpringBoot 测试主从数据类型读写

前文中使用SpringBoot Data Redis项目集成了Redis的主从架构接入,本篇主要来测试一下整合后从项目中使用RedisTemplate操作redis相关的API,实现不同数据类型的写入和读取,涉及到string、list、set、zset、hash、geo、stream等多种数据类型,虽然类型较多且复杂多样,个人学习实践也仅属于蜻蜓点水的粗略掌握程度,详见下文。 1.string /** *字符串的存取 */ @Test publicvoidstring(){ System.out.println("两种方式存取,应使用StringRedisTemplate"); this.writeRedisTemplate.boundValueOps("name").set("陈冬冬-"+getDatetime()); Stringname1=(String)this.readRedi...

文章分类:经验分享 技术知识

Redis

Redis实践(4.4)SpringBoot 测试主从读写分离

前文中使用SpringBoot Data Redis项目集成了Redis的主从架构接入,本篇主要来测试一下整合后从项目中使用自定义的工具类操作redis相关的API,实现操作Redis读模式的负载均衡。本篇文章则来实践一下在常规应用中的读写分离,如果是在项目中原始集成的话,跟数据库的读写分离一样,用两套数据源,分别指向读库可写库来实现,详见下文。 1.参考代码 packagecn.chendd.redis; /** *Redis读写分离测试 *@authorchendd *@date2023/5/2022:00 */ publicclassRedisWriteReadTestextendsBaseTest{ /** *写客户端 */ @Resource(name=RedisConstants.WRITE_STRING_REDIS_TEMPLATE) privateStringRedi...

文章分类:经验分享 技术知识

Redis

Redis实践(4.3)SpringBoot 读模式的负载均衡

前文中使用SpringBoot Data Redis项目集成了Redis的主从架构接入,本篇主要来测试一下整合后从项目中使用自定义的工具类操作redis相关的API,实现操作Redis读模式的负载均衡。前篇示例中分别提供了注解@Resource注入的形式获取RedisTemplate类型,但是获取到固定的是某台服务器的连接模板对象,在使用过程中一旦定义则每次请求均来自一个模块,理论上可以通过模块功能代码的形式来实现压力复杂。另外一种则是本文使用的工具类来实现读取数据的负载均衡(前文中所述写模式只有一台服务器所以不存在负载均衡),详见下文。 1.RedisUtils packagecn.chendd.redis.utils; import...; /** *RedisUtils工具类 * *@authorchendd *@date2023/5/1922:00 */ publicfinal...

文章分类:经验分享 技术知识

Redis

Redis实践(4.2)SpringBoot 测试主从连接池

前文中使用SpringBoot Data Redis项目集成了Redis的主从架构接入,本篇主要来测试一下整合后从项目中配置的Redis连接池是否生效的实现,虽然配置了有连接池参数,仅仅只是参数配置而已,事实上它确实是生效了吗?所以本文将使用代码来验证验证使用RedisTemplate的连接池工作机制,详见下文。 1.application.yml lettuce: pool: enabled:true max-active:8#最大连接数据库连接数,设-1为没有限制 max-idle:8#最大等待连接中的数量,设0为没有限制 max-wait:10s#最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。 min-idle:0#最小等待连接中的数量,设0为没有限制 time-between-eviction-runs:10s#空闲连接回收时间 【说明】 (1)此...

文章分类:经验分享 技术知识

Redis

Redis实践(4.1)SpringBoot 测试主从RedisTemplate

前文中使用SpringBoot Data Redis项目集成了Redis的主从架构接入,本篇主要来测试一下整合后从项目中获取的RedisTemplate上下文信息以及操作redis相关的API,所以本文使用两种方式来获取RedisTemplate实例,分别是使用Spring注解和Spring Bean组件获取的工具类的形式,通过不同的RedisTemplate实例拿到不同的ConnectionFactory来验证各个实例操作的都是对应的Redis环境,详见下文。 1.注解代码 通过注解的形式注入6个容器对象,分别是2个写Redis和4个读Redis,同时包含了RedisTemplate和StringRedisTemplate,参考如下代码: package cn.chendd.redis; import ... /** * 使用@Resource注入的方式来测试redis的6个实现类,关...

文章分类:经验分享 技术知识

Redis
本站信息

 运营时间: 天

 用户数量: 人

 文章数量: 篇

 评论数量: 条

 点赞个数: 个

 最后更新:

标签云