Redis Java 客户端 Lettuce(生菜)食用指南
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/