spring cloud多模块项目框架搭建-集成Redis连接客户端及连接池Lettuce

第八章:集成Redis连接客户端及连接池Lettuce

本系列博客旨在搭建一套能用于实际开发使用的spring cloud多模块微服务项目框架,并不是一个spring cloud的demo而已,提供系统的开发规范限制,微服务注册中心,配置中心,负载均衡,熔断,redis缓存,分布式事务,kafka服务消息通信,系统安全(sql注入攻击,xxs攻击等等),多数据源切换,全局异常处理等等。

 目录顺风车:

spring cloud多模块项目框架搭建https://blog.csdn.net/lingyancangqiong/article/details/109841353

redis官网:Redis    /   redis中文官方网站

redis基础教程:https://www.runoob.com/redis/redis-tutorial.html

Lettuce官网:https://lettuce.io/

Lettuce开源项目及文档:https://github.com/lettuce-io/lettuce-core

redis大家都很熟悉,现在几乎没有人没用过redis,一问什么是redis?大多数人的回答就是内存数据库嘛。还有呢,就说不出来了。rdedis是redis 之父 Salvatore Sanfilippo,一位意大利的大神,2009年开始开发并开源的,基于内存的NOSQL非关系型数据库,开发之初redis只是这位大神一个副业项目的一部分。什么是redis,怎样使用redis,都不在本章的讲解范围之内,我们是在搭系统架构🤣🤣,不会的或者没用过童鞋可以看看文首的基础教程。

一.   什么是Lettuce??

Lettuce翻译过来就是生菜,logo也挺像的,也是redis提供的众多Java 连接客户端之一。

二 .   Lettuce和Jedis的区别?

   1. Jedis 和 Lettuce 都是 Java 操作 Redis 的客户端。在 Spring Boot 1.x 版本默认使用的是 jedis ,而在 Spring Boot 2.x 版本默认使用的就是Lettuce。

   2. Jedis 在实现上是直连 redis server,多线程环境下非线程安全,除非使用连接池,为每个 redis实例增加 物理连接。

   3.  Lettuce 是 一种可伸缩,线程安全,完全非阻塞的Redis客户端,多个线程可以共享一个RedisConnection,它利用Netty NIO 框架来高效地管理多个连接,从而提供了异步和同步数据访问方式,用于构建非阻塞的反应性应用程序,一个连接实例不够的情况也可以按需增加连接实例。

   4.  Lettuce 需要借助commons-pool2连接池,客户端连接 Redis 使用的是 TCP协议,直连的方式每次需要建立 TCP连接,而连接池的方式是可以预先初始化好客户端连接,所以每次只需要从 连接池借用即可,而借用和归还操作是在本地进行的,只有少量的并发同步开销,远远小于新建TCP连接的开销。另外,直连的方式无法限制 redis客户端对象的个数,在极端情况下可能会造成连接泄漏,而连接池的形式可以有效的保护和控制资源的使用,减少了创建。连接池在《spring cloud多模块项目框架搭建-集成druid连接池》就说过,原理都是一样的。

所以Lettuce在连接性能更胜一筹,但是提供的接口单一。而Jedis也不是一无是处,Jedis提供了比较全面的 Redis 操作特性的 API,API 基本与 Redis 的指令一一对应,使用简单易理解。还是那句话,技术没有老旧,好坏之分,适合自己,适合业务场景的就是好技术。

三.   集成 Redis单机版Lettuce 连接客户端

  本章还是以dream-order系统为例,自己动手完成dream-activity.在上一章《spring cloud多模块项目框架搭建-集成SLF4J和log4j日志组件》的代码基础上进行集成。

1.  在dream父模块的pom.xml引入Lettuce 和commons-pool2的依赖。

                <properties>
                     <spring-boot-starter-data-redis.version>2.4.0</spring-boot-starter-data-redis.version>
                     <commons-pool2.version>2.9.0</commons-pool2.version>
                </properties>

                <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-redis -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-redis</artifactId>
                <version>${spring-boot-starter-data-redis.version}</version>
            </dependency>

            <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-pool2 -->
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-pool2</artifactId>
                <version>${commons-pool2.version}</version>
            </dependency>

2.  在dream-order的pom.xml加入如下依赖

<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-star
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值