lettuce :英语的意思:生菜
是一个用来操作redis的框架,springboot内置默认支持的也是 lettuce ,也可以自己改成 jedis
Jedis 也是一个用来操作redis的框架
★ Lettuce的核心API
-
RedisURI:用于封装Redis服务器的URI信息。
-
RedisClient:代表Redis客户端,如果连接Cluster模式的Redis,则使用RedisClusterClient。
有点类似于redis-cli工具。 -
StatefulConnection<K,V>:代表Redis连接的父接口,它派生了不少子接口来代表不同的连接。
-
RedisCommands:用于执行Redis命令的接口,它的方法几乎覆盖了Redis的所有命令(前面介绍的那些命令全部都支持)
它的方法名和Redis命令名也是一一对应的,肯定一看就会,
比如Redis对操作Hash对象提供了hmset命令,那RedisCommands就支持hmset()方法,
它派生了一个RedisPubSubCommands<K,V>子接口,用于运行消息发布/订阅的命令。
★ Lettuce编程步骤:
使用Lettuce操作Redis的大致步骤如下:
(1)定义RedisURI(有点类似于数据库的URL),再以RedisURI为参数,创建RedisClient(普通单机模式的redis)或RedisClusterClient(集群模式的redis)对象。
(2)调用 RedisClient 或 RedisClusterClient 的 connectXxx()方法 连接Redis服务器,根据所连接的Redis服务器的状态不同,该方法返回 StatefulRedisXxxConnection 连接对象。
(3)调用StatefulRedisXxxConnection连接对象的sync()、async()或reactive()方法创建同步、异步或反应式模式的RedisCommands对象。
sync:同步 async :异步 reactive:反应式
(4)调用RedisCommands执行Redis命令。这一步是变化最多的,因为RedisCommands可以执行Redis的全部命令。
(5)关闭资源,就是关闭连接。关闭资源时按照惯例“先开后闭”,因此先关闭与Redis的连接对象,再关闭RedisClient对象。
redis的编程步骤:定义URI(指定连接的服务器) → 创建Client → 与服务器建立连接 → 创建RedisCommands 对象 → 通过 RedisCommands 对象来执行命令 → 关闭资源
★ 构建RedisURI:
Lettuce提供了如下三种方式来构建RedisURI:
方法1:调用静态的create()方法。这种方式要求把所有的连接信息都写在create()方法的String参数中。
该String参数既支持单机模式的Redis,也支持集群模式的Redis,也支持哨兵模式的Redis。
方法2: 调用Builder来构建。这种构建方式下,所有信息都通过Builder对应的方法逐项传入,因此可读性最好,这也是我所推荐的方式。
方法3: 调用构造器来构建。这种方式是最不灵活的方式,因为它只能传入3个构造器参数,通过该方式构建RedisURI之后还需要调用它的setter方法对它进行设置,这种方式是最差的一种。
官网中用Builder对应的方法构建RedisURI
用梯子的话能更好的访问官网,但是此刻的官网进不去了,在维护
★ 从RedisClient 到 StatefulConnection 连接对象
——用于获取与Redis服务器的连接
以RedisURI为参数,调用RedisClient(或 RedisClusterClient 用于集群)的create()静态方法即可创建RedisClient(或RedisClusterClient)对象。
根据Redis运行模式调用RedisClient或RedisClusterClient对象对应的connectXxx()方法获取StatefulConnection连接对象。
StatefulConnection提供如下常用子接口:
根据各种子接口,用来返回各种连接对象,如单机、集群、主从、哨兵
StatefulRedisConnection: 最基本的Redis连接。
StatefulRedisPubSubConnection: 带消息发布/订阅功能的Redis连接。
StatufulRedisMasterSlaveConnection: 主从模式的Redis连接。
StatefulRedisSentinelConnection: 哨兵模式的Redis连接。
**主从模式:**相当于redis有两个节点:主节点和从节点,主要是向主节点进行操作,如果主节点挂掉了,从节点顶上,从节点主要是提供一个数据备份的功能。
**哨兵模式:**对主、从节点进行监视,当主节点出问题的时候,可以再从众多节点里面再找一个主节点出来。
★ 从StatefulConnection 到 RedisXxxCommands对象
调用 StatefulRedisXxxConnection连接对象 的以下三个方法来创建 RedisXxxCommands对象。
sync(): 创建同步模式的RedisCommands对象。
async(): 创建异步模式的RedisAsyncCommands对象。
reactive(): 创建反应式模式的RedisReactiveCommands对象。
RedisCommands的作用类似于redis-cli.exe工具,用于执行各种Redis命令。
其中RedisAsyncCommands是异步版本,而RedisReactiveCommands则是反应式版本