百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

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

mhr18 2025-04-01 20:21 94 浏览 0 评论

Lettuce 这个名字蛮有意思,音标:['lets] ,发音和 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/

相关推荐

【推荐】一个开源免费、AI 驱动的智能数据管理系统,支持多数据库

如果您对源码&技术感兴趣,请点赞+收藏+转发+关注,大家的支持是我分享最大的动力!!!.前言在当今数据驱动的时代,高效、智能地管理数据已成为企业和个人不可或缺的能力。为了满足这一需求,我们推出了这款开...

Pure Storage推出统一数据管理云平台及新闪存阵列

PureStorage公司今日推出企业数据云(EnterpriseDataCloud),称其为组织在混合环境中存储、管理和使用数据方式的全面架构升级。该公司表示,EDC使组织能够在本地、云端和混...

对Java学习的10条建议(对java课程的建议)

不少Java的初学者一开始都是信心满满准备迎接挑战,但是经过一段时间的学习之后,多少都会碰到各种挫败,以下北风网就总结一些对于初学者非常有用的建议,希望能够给他们解决现实中的问题。Java编程的准备:...

SQLShift 重大更新:Oracle→PostgreSQL 存储过程转换功能上线!

官网:https://sqlshift.cn/6月,SQLShift迎来重大版本更新!作为国内首个支持Oracle->OceanBase存储过程智能转换的工具,SQLShift在过去一...

JDK21有没有什么稳定、简单又强势的特性?

佳未阿里云开发者2025年03月05日08:30浙江阿里妹导读这篇文章主要介绍了Java虚拟线程的发展及其在AJDK中的实现和优化。阅前声明:本文介绍的内容基于AJDK21.0.5[1]以及以上...

「松勤软件测试」网站总出现404 bug?总结8个原因,不信解决不了

在进行网站测试的时候,有没有碰到过网站崩溃,打不开,出现404错误等各种现象,如果你碰到了,那么恭喜你,你的网站出问题了,是什么原因导致网站出问题呢,根据松勤软件测试的总结如下:01数据库中的表空间不...

Java面试题及答案最全总结(2025版)

大家好,我是Java面试陪考员最近很多小伙伴在忙着找工作,给大家整理了一份非常全面的Java面试题及答案。涉及的内容非常全面,包含:Spring、MySQL、JVM、Redis、Linux、Sprin...

数据库日常运维工作内容(数据库日常运维 工作内容)

#数据库日常运维工作包括哪些内容?#数据库日常运维工作是一个涵盖多个层面的综合性任务,以下是详细的分类和内容说明:一、数据库运维核心工作监控与告警性能监控:实时监控CPU、内存、I/O、连接数、锁等待...

分布式之系统底层原理(上)(底层分布式技术)

作者:allanpan,腾讯IEG高级后台工程师导言分布式事务是分布式系统必不可少的组成部分,基本上只要实现一个分布式系统就逃不开对分布式事务的支持。本文从分布式事务这个概念切入,尝试对分布式事务...

oracle 死锁了怎么办?kill 进程 直接上干货

1、查看死锁是否存在selectusername,lockwait,status,machine,programfromv$sessionwheresidin(selectsession...

SpringBoot 各种分页查询方式详解(全网最全)

一、分页查询基础概念与原理1.1什么是分页查询分页查询是指将大量数据分割成多个小块(页)进行展示的技术,它是现代Web应用中必不可少的功能。想象一下你去图书馆找书,如果所有书都堆在一张桌子上,你很难...

《战场兄弟》全事件攻略 一般事件合同事件红装及隐藏职业攻略

《战场兄弟》全事件攻略,一般事件合同事件红装及隐藏职业攻略。《战场兄弟》事件奖励,事件条件。《战场兄弟》是OverhypeStudios制作发行的一款由xcom和桌游为灵感来源,以中世纪、低魔奇幻为...

LoadRunner(loadrunner录制不到脚本)

一、核心组件与工作流程LoadRunner性能测试工具-并发测试-正版软件下载-使用教程-价格-官方代理商的架构围绕三大核心组件构建,形成完整测试闭环:VirtualUserGenerator(...

Redis数据类型介绍(redis 数据类型)

介绍Redis支持五种数据类型:String(字符串),Hash(哈希),List(列表),Set(集合)及Zset(sortedset:有序集合)。1、字符串类型概述1.1、数据类型Redis支持...

RMAN备份监控及优化总结(rman备份原理)

今天主要介绍一下如何对RMAN备份监控及优化,这里就不讲rman备份的一些原理了,仅供参考。一、监控RMAN备份1、确定备份源与备份设备的最大速度从磁盘读的速度和磁带写的带度、备份的速度不可能超出这两...

取消回复欢迎 发表评论: