Skip to content
/ Lettuce_Reference_Guide Public
  • Notifications You must be signed in to change notification settings
  • Fork 1
  • Star 3

Lettuce Reference Guide-中文版

3 stars 1 fork Branches Tags Activity
Star
Notifications You must be signed in to change notification settings

ScDadaguo/Lettuce_Reference_Guide

Branches Tags

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
.gitignore
.gitignore
 
 
README.md
README.md
 
 

Repository files navigation

lettuce green text@2x

事出有因:

为啥我会想去读这本官方文档,因为查找了一些博文,发现网上的资源并不是非常多,少而杂,那正好我时间,我就自己去啃吧!冲就完事了!

1. 总览

这是一个基于 Lettuce 官网的参考导读文档,它介绍了如何使用 Lettuce ,以及 Lettuce 的概念、语义和语法。

您可以从头到尾按序导读,也可以直接跳到您感兴趣的章节进行导读。

本节会对 Redis 进行基础的介绍,文档剩余的章节是假设您已经对 Redis 有稍许了解的基础上进行对 Lettuce 特性的讲解。

1.1 了解 Redis

NoSQL 在数据库领域掀起了一场浪潮,它是一个广阔的领域,具有非常多的解决方案,术语和模式(更糟的是同一术语有多个意思),尽管原理是相通的,但是至关重要的是,用户要一定程度上熟悉 Reids。去深入了解Redis 最好的方法还是去阅读它们的官方文档。

想深入了解redis,可以访问 redis.io,下面列出一些其他十分有用的资源:

  • 交互式教程-try.redis.i
  • command references 介绍redis命令以及一些学习导读,参考文档和教程

1.2 Project Reactor

Reactor 是一个基于 Reactive Streams Specification运行在 JVM 上的应用于构建高效的非阻塞应用程序的一个 reactive 库。基于reactor构建的应用程序具有非常高的吞吐量,并以非常低的内存占用量运行。这个特性使得它非常适合使用微服务架构来构建高效的事件驱动程序。

Reactor 实现了 Flux<>T and Mono 两者都支持 non-blocking back-pressure ,这样就可以在具有明确定义的内存使用情况的线程之间交换数据,同时就避免了一些不必要的缓冲和阻塞。

1.3 Redis 的非阻塞 API

Lettuce 是一个基于 netty 和 Reactor 的一个可扩展同时线程安全的 Redis 客户端。Lettuce提供了同步,异步和反应式API来与Redis进行交互。

1.4 环境需求

  • Lettuce 4.x and 5.x 需要 JDK8 及以上更高版本
  • Redis 需要2.6 及以上更高版本

1.5 其它你可能需要的资源

学习一个新的开源框架肯定不是一番风顺的,在这个部分,我们试着提供一个较为简单的导读指南来帮助读者来学习 Lettuce。如果您遇到一些困扰或者您想要得到一些建议,我们提供一下链接给你,或许能够帮助到您!

1.5.1 Support

  • Stackoverflow 在 Stackoverflow 上有一个 Lettuce 用户社区,很多用户都在这互相帮助分享交流。
  • Gitter 上也有一个Lettuce社区。
  • 谷歌 Lettuce 论坛: lettuce-redis-client-users or lettuce-redis-client-users@googlegroups.com.
  • Github issues https://github.com/lettuce-io/lettuce-core/issues.

1.5.2 快速跳转

  • 如果你想直接开始 Getting Started 。
  • 转到主从,Redis Sentinel和Redis Cluster 的高可用和分片特性讲解。传送门: High-Availability and Sharding
  • 如果你想更深入的了解 Reactor 的核心功能:
    • 了解客户端如何配置,一些性能相关各种传输方式,传送门: 高级用法
    • 想知道如何把 Lettuce 集成到你的 spring 应用中可查看 Integration and Extension
    • You want to know more about at-least-once and at-most-once? Take a look into Command execution reliability.

2. New & Noteworthy

3. Getting Started

3.1. 1. Get it

Maven 用户:

把如下配置添加到 pom.xml 文件下:

<dependency>
    <groupId>io.lettuce</groupId>
    <artifactId>lettuce-core</artifactId>
    <version>5.2.1.RELEASE</version>
</dependency>

lvy 用户:

把如下配置添加到 ivy.xml 文件下:

<ivy-module>
  <dependencies>
    <dependency org="io.lettuce" name="lettuce-core" rev="5.2.1.RELEASE"/>
  </dependencies>
</ivy-module>

Gradle 用户:

把如下配置添加到 build.gradle 文件下:

dependencies {
  compile 'io.lettuce:lettuce-core:5.2.1.RELEASE'
}

Plain Java

去 https://github.com/lettuce-io/lettuce-core/releases 下载最新的二进制压缩包解压使用

3.2. 2. 开始 coding!

很简单吧!不用太多复杂的流程,我们就可以开始了,冲!

导入需要的类:

import io.lettuce.core.*;

开始写代码:

RedisClient redisClient = RedisClient.create("redis://password@localhost:6379/0");
StatefulRedisConnection<String, String> connection = redisClient.connect();
RedisCommands<String, String> syncCommands = connection.sync();

syncCommands.set("key", "Hello, Redis!");

connection.close();
redisClient.shutdown();

完成!

接下来看一些其他github上的事例吧:

  • Standalone Redis
  • Standalone Redis with SSL
  • Redis Sentinel
  • Redis Cluster
  • Connecting to a ElastiCache Master
  • Connecting to ElastiCache with Master/Replica
  • Connecting to Azure Redis Cluster
  • Lettuce with Spring

4. 连接Redis

与Redis Standalone,Sentinel或Cluster的连接有详细的连接配置。连接的统一形式是通过 RedisURI

RedisURI 中包含了数据库,密码,超时设置等,你可以通过以下方式来创建 RedisURI

  1. Use an URI:
RedisURI.create("redis://localhost/");
  1. Use the Builder
RedisURI.Builder.redis("localhost", 6379).auth("password").database(1).build();
  1. 直接赋值
new RedisURI("localhost", 6379, 60, TimeUnit.SECONDS);

4.1. URI 语法

Redis Standalone

redis :// [: password@] host [: port] [/ database][? [timeout=timeout[d|h|m|s|ms|us|ns]] [&database=database]]

Redis Standalone (SSL)

rediss :// [: password@] host [: port] [/ database][? [timeout=timeout[d|h|m|s|ms|us|ns]] [&database=database]]

Redis Standalone (Unix Domain Sockets)

redis-socket :// path [?[timeout=timeout[d|h|m|s|ms|us|ns]][&database=database]]

Redis Sentinel

redis-sentinel :// [: password@] host1[: port1] [, host2[: port2]] [, hostN[: portN]] [/ database][?[timeout=timeout[d|h|m|s|ms|us|ns]] [&sentinelMasterId=sentinelMasterId] [&database=database]]

对应方式

  • redis ---Redis Standalone
  • rediss--- Redis Standalone SSL
  • redis-socket ---Redis Standalone Unix Domain Socket
  • redis-sentinel ---Redis Sentine

Timeout 单位对应

  • d Days 天
  • h Hours 时
  • m Minutes 分
  • s Seconds 秒
  • ms Milliseconds 毫秒
  • us Microseconds 微妙
  • ns Nanoseconds 纳秒

Tip:相比在路径中写数据库,建议优先使用直接赋值的方式,

4.2. 基本用法

Example 1. Basic usage


RedisClient client = RedisClient.create("redis://localhost");                //1  

StatefulRedisConnection<String, String> connection = client.connect();       //2

RedisCommands<String, String> commands = connection.sync();                  //3          

String value = commands.get("foo");                                          //4         

...

connection.close();                                                          //5                

client.shutdown();                                                           //6
  1. 提供一个 RedisUri 指向 localhost 默认端口为 6379 并创建一个 redis 客户端实例。
  2. 用创建好的客户端实例建立连接。
  3. 获取同步执行的命令API,并且 Lettuce 还支持 异步 和反应式的执行操作。
  4. 发出一个 redis 命令,去获取 键为“foo” 的值。
  5. 完成后关闭连接,这通常是发生在程序的最后。
  6. 关闭客户端去释放线程和资源,这通常是发生在程序的最后。

每个 redis command 都是通过一种或多种名称和redis 命令名称相同的方法实现的。

Complex commands with multiple modifiers that change the result type include the CamelCased modifier as part of the command name, e.g. zrangebyscore and zrangebyscoreWithScores.

Redis 连接是长链接和线程安全的,如果连接断开,将重新连接,直到调用 close() 为止。重新连接成功后,将(重新)发送尚未超时的未决命令。

所有的连接都是使用的是设置的 reids 客户端的 timeout,在非阻塞命令在timeout时间之内未返还结果将抛出RedisException

超时默认设置为 60 秒,可以在redis 客户端中修改,当 timeout了 同步方法将抛出RedisCommandExecutionException,以防Redis响应错误,Redis响应错误时,异步连接的轻快下不会引发异常。

4.2.1. RedisURI

RedisURI 包含 host/port 并且可以携带 权限认证和数据的信息,连接成功后你会获得权限,然后选择数据库。

断开连接后依然可以恢复连接。

About

Lettuce Reference Guide-中文版

Resources

Readme
Activity

Stars

3 stars

Watchers

3 watching

Forks

1 fork
Report repository

Releases

No releases published

Packages

No packages published

Footer

© 2024 GitHub, Inc.

玻璃钢生产厂家桂林玻璃钢雕塑设计安阳园林玻璃钢雕塑价格玻璃钢雕塑喷漆喷几遍六安商场美陈装饰舟山个性化玻璃钢雕塑多少钱江苏大型主题商场美陈研发大嘴卡通玻璃钢雕塑玻璃钢雕塑设计灵感广东玻璃钢火龙果雕塑常德人物玻璃钢雕塑江苏主题公园玻璃钢雕塑艺术摆件广州商场美陈供货商定做仿石头玻璃钢花盆远安玻璃钢花盆花器自制玻璃钢花盆锦州玻璃钢雕塑厂家价格龙岩rtm法玻璃钢雕塑生产山东装饰商场美陈批发台湾玻璃钢卡通雕塑价格山西商城玻璃钢卡通形象雕塑玻璃钢雕塑多钱南京商场美陈怎么样玻璃钢雕塑卡通批发价格定做仿石头玻璃钢花盆玉溪玻璃钢花盆服务好的玻璃钢雕塑厂岳阳仿铜西式玻璃钢雕塑江西公园玻璃钢雕塑哪家便宜玻璃钢雕塑怎么翻出空心雕塑定做小提琴玻璃钢花盆香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化