Redis Java 客户端 Lettuce(生菜)食用指南

createh52个月前 (02-01)技术教程15

Lettuce 这个名字蛮有意思,音标:[?let?s] ,发音和 Jedis ,Redis 一样都比较押韵,Lettuce 的中文意思是生菜,官方网站()的 Logo 就是一朵生菜,网页也是一片绿油油的,可以看出作者非常追求艺术美。



本文中庖丁主要阐述生菜的使用指南,读完本文后,你可以:

  • 使用 Docker 搭建 Redis 运行环境
  • 使用 Lettuce 客户端程序访问 Redis 服务器,进行简单的缓存操作
  • 对 Lettuce 的使用方式有个初步的了解

Redis介绍和环境准备

本文假设读者了解 Redis,至少知道Redis 是什么,可以进行简单的操作,它的官网https://redis.io/ 介绍如下:

Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes with radius queries and streams. Redis has built-in replication, Lua scripting, LRU eviction, transactions and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster.

Redis是一个开放源代码(BSD许可)的内存中数据结构存储,用作数据库,缓存和消息代理。 它支持数据结构,例如字符串,哈希,列表,集合,带范围查询的排序集合,位图,hyperloglogs,带有半径查询和流的地理空间索引。 Redis具有内置的复制,Lua脚本,LRU驱逐,事务和不同级别的磁盘持久性,并通过Redis Sentinel和Redis Cluster自动分区提供了高可用性。官网提供了挺好的交互式教程:http://try.redis.io/ ,帮助大家快速学习和掌握 Redis 常用的操作命令。交互操作界面如下图:


?

本文中,使用的最新的稳定版本 5.0.8 版本进行操作,读者可以从官网下载,解压后,遵循 README 的教程进行操作,如果你使用 MAC 或者 Linux 操作系统,直接使用相关命令安装启动即可。Windows 环境下操作不是挺舒服,最后使用 Docker 操作,特别是Redis 集群的搭建,后续庖丁会专门写一篇文章来阐述使用Docker 来搭建 Redis 运行环境。这里不再赘述。

Docker 简介

  • 安装 Docker

我们使用docker 的桌面版本,操作方便,读者可以根据自己的操作系统进行下载,庖丁下载了 Mac 版本。


Docker 的使用文档,Mac 版本的
https://docs.docker.com/docker-for-mac/ ,Windows 版本的:
https://docs.docker.com/docker-for-windows/ ,大家可以根据自己的需要,进行阅读。容器化的时代,强烈建议大家学习和使用 Docker,解决硬件设备问题,减少搭建环境的时间,对于提高研发效率有极大的帮助。安装完成后,打开命令行,输入以下命令:

$ docker info 

一般会显示Docker 组件的版本和当前安装所在硬件设备等信息。

  • 安装 Redis 镜像

Docker 安装完成后,我们需要安装 Redis 。和Java 的组件一样,Docker 也有自己的 hub,进行镜像管理,地址为:
https://hub.docker.com/_/redis,是用下列命令安装 Docker 镜像。这里安装单机版本。

$ docker pull redis

完成完成后,使用以下命令启动容器中的 Redis 。

$ docker run -itd --name paoding-redis -p 6379:6379 redis
$ docker ps 

启动后,效果如下:可以看到默认的 Redis 启动端口 6379

Docker 桌面版本工具中,可以看到刚刚启动的 Redis 容器信息,可以看到 Redis 5.0.9 版本成功启动了。截图如下:

使用 Lettuce 操作 Redis

准备好 Redis 的单机版环境后,我们使用 Lettuce客户端进行连接和操作,可以是用 Maven 或者 Gradle 来进行依赖管理,本文中庖丁使用 Gradle 来进行工程构建和依赖管理。你可以使用喜欢的 IDE 来创建 Java 工程。build.gradle 代码片段如下:

plugins {
    id 'java'
}

group 'com.lerith.lettuce'
version '1.0.0-SNAPSHOT'

repositories {
    mavenCentral()
}

dependencies {
    compile 'io.lettuce:lettuce-core:5.2.2.RELEASE'
    testCompile group: 'junit', name: 'junit', version: '4.12'
}

万众期待的 Hello world,LettuceStarted.java 代码片段如下:

package com.lerith.anatomy.lettuce.started;

import io.lettuce.core.RedisClient;
import io.lettuce.core.api.StatefulRedisConnection;
import io.lettuce.core.api.sync.RedisCommands;

public class LettuceStarted {
    public static void main(String[] args) {
        RedisClient redisClient = RedisClient.create("redis://localhost:6379/0");
        StatefulRedisConnection connection = redisClient.connect();
        RedisCommands syncCommands = connection.sync();

        syncCommands.set("key", "Hello, Redis!");
        String value = syncCommands.get("key");
        System.out.println("value = " + value);
        connection.close();
        redisClient.shutdown();
    }
}

运行上述代码,Redis 安装和启动正常后,会输出我们期望的结果。工程代码托管在 github 地址为:
https://github.com/paodingjiejiagou/anatomy-lettuce ,也可以下载运行。

总结

本文简单介绍了 Redis,使用 Docker 安装和运行 Redis ,使用 Lettuce 来访问 Redis,为后续源码精读和架构剖析奠定基础。

参考资料

Lettuce官方文档:
https://lettuce.io/core/release/reference/index.html

Redis 文档:
https://redis.io/documentation

Docker 文档:
https://docs.docker.com/docker-for-mac/

相关文章

JavaWEB前端向服务器端发送对象(java向服务器发送数据)

最近项目中需要做一个关于批量删除的功能,删除条件有多个,需要从页面全部传给后台服务器程序,单个的删除,可以拼接参数给url,服务器端获取参数后执行删除操作即可。但是批量删除多个,参数会很多,传递就有些...

java-socket长连接demo体验(java tcp长连接)

作者:DavidDing 来源:https://zhuanlan.zhihu.com/p/56135195 一、前言最近公司在预研设备app端与服务端的交互方案,主要方案有:服务端和app端通过阿里i...

Java 中的 Http 客户端 API:身份验证

.介绍在本系列的第一部分(链接此处)中,介绍了 java http 客户端 API 的基本功能。现在我们将探讨当今应用程序中广泛使用的一些更常见的用例。我们将学习如何通过提供凭据来访问安全端点。基本认...

微服务架构模式:让自己对BFF层有个了解——服务于前端的后端

BFF用于前端的后端◎ 回顾前后端分离发展史◎ BFF诞生◎ 基于RESTful的BFF◎ 基于GraphQL的BFF随着前端技术的大爆发,面对逐渐复杂化的前端工程体系,越来越多的企业开始采用前后端分...

java本地搭建宝塔部署实战likeadmin后台系统源码server端(一)

大家好啊,我是测评君,欢迎来到web测评。上次分享了那几期likeadmin的搭建视频教程,由于是php开发的,这对有些习惯用java开发的同学不太友好,好在这套系统也有java版本的,也有朋友让我录...

演绎与探索-从0到1,IDE如何提升端侧研发效率?

背景随着应用DinamicX(简称DX,下同)技术的场景和团队愈加复杂与广泛,持续保障DX核心竞争力,支持团队级别协同开发,助力复杂业务场景的诉求愈发强烈。之前的DX开发基于模板平台,其核心为基于开源...