SpringBoot集合Redis之Lettuce

一、是什么

Lettuce(生菜),是连接Redis的JAVA驱动包。

二、Lettuce与Jedis区别

jedis和lettuce都是Redis客户端,它们都可以连接Redis服务器。

但在SpringBoot 2.0之后都是默认用letttuce这个客户端连接redis服务器。

因为当使用jedis客户端连接redis服务器时,每个线程都要拿自己创建的实例去连接Redis客户端,当有很多个线程时(高并发),不仅开销大需要反复的创建并关闭jedis连接,而且也是线程不安全的,一个线程通过jedis实例去更改redis服务器中的数据会影响另一个线程。

Lettuce底层使用Netty实现,当有多个线程都需要连接redis服务器时,可以保证只创建一个lettuce连接,多个线程共享同一个连接,减少了频繁创建和关闭连接的开销,而且是线程安全的,不存在一个线程改动redis中数据影响另一个线程的情况。

更详细的区别,请参考:初探 Redis 客户端 Lettuce:真香! - vivo互联网技术 - 博客园 (cnblogs.com)

我觉得这位博主写的超级好!博客园真的很棒,建议大家收藏这个网站~

三、配置

1.在Idea中新建一个module

2.改pom文件,添加如下依赖

 <!--lettuce是连接redis的java驱动包 -->
        <dependency>
            <groupId>io.lettuce</groupId>
            <artifactId>lettuce-core</artifactId>
            <version>6.2.0.RELEASE</version>
        </dependency>

3.虚拟机里开启redis服务

4.Idea中测试连接

import io.lettuce.core.*;
 RedisURI redisUri = RedisURI.builder()
            .withHost("192.168.80.130")
            .withPort(6379)
            .withPassword("password")
            .build();
 RedisClient redisClient=RedisClient.create(redisUri);
 StatefulRedisConnection<String, String> connection=redisClient.connect()
 RedisCommands<String, String> redisCommand=connection.sync();
 System.out.println("服务器正在运行: "+redisCommand.ping());
 redisCommand.set("key", "Hello, Redis!");
 connection.close();
 redisClient.shutdown();

最后:lettuce就是调用jar包里现成的api,所以了解常用的api十分重要。


Lettuce使用的时候依赖于四个主要组件:

RedisURI:连接信息。
RedisClient:Redis客户端,特殊地,集群连接有一个定制的RedisClusterClient。
Connection:Redis连接,主要是StatefulConnection或者StatefulRedisConnection的子类,连接的类型主要由连接的具体方式(单机、哨兵、集群、订阅发布等等)选定,比较重要。
RedisCommands:Redis命令API接口,基本上覆盖了Redis发行版本的所有命令,提供了同步(sync)、异步(async)、反应式(reative)的调用方式,对于使用者而言,会经常跟RedisCommands系列接口打交道。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值