开发手册 欢迎您!
软件开发者资料库

Java连接操作Redis(Lettuce客户端)方法及示例代码

本文主要Java中,连接操作Redis和常用操作使用方法及示例代码,以及相关Redis面试题。

1、Redis的客户端lettuce

Lettuce和Jedis的都是连接Redis Server的客户端程序。Jedis在实现上是直连redis server,多线程环境下非线程安全,除非使用连接池,为每个Jedis实例增加物理连接。Lettuce基于Netty的连接实例(StatefulRedisConnection),可以在多个线程间并发访问,且线程安全,满足多线程环境下的并发访问,同时它是可伸缩的设计,一个连接实例不够的情况也可以按需增加连接实例.

2、Lettuce客户端安装引用

1) 下载指定的版本Jar包

下载地址https://github.com/lettuce-io/lettuce-core/releases

2) 在Pom.xml中添加Maven依赖

    biz.paluch.redis    lettuce    3.2.Final

其它版本https://github.com/lettuce-io/lettuce-core/wiki/Download

3、使用Lettuce连接Redis

import com.lambdaworks.redis.*;public class ConnectToRedis {  public static void main(String[] args) {    RedisClient redisClient = new RedisClient(    RedisURI.create("redis://password@host:port"));//password是连接的密码,不需验证删除password@即可    RedisConnection connection = redisClient.connect();    System.out.println("Connected to Redis");    connection.close();    redisClient.shutdown();  }}

使用Spring时,则可以使用Spring XML创建一个实例,内容如下

    

使用代码:

import com.lambdaworks.redis.*;import org.springframework.beans.factory.annotation.Autowired;public class MySpringBean {    private RedisClient redisClient;    @Autowired    public void setRedisClient(RedisClient redisClient) {        this.redisClient = redisClient;    }    public String ping() {        RedisConnection connection = redisClient.connect();        String result = connection.ping();        connection.close();        return result;    }}

注意:

通常程序退出后,需要使用shutdown方法关闭:

redisClient.shutdown();

如果使用的是SpringCDI,则框架将负责管理资源,而不必使用shutdown方法关闭客户端。

4、使用SSL的Lettuce客户端

为了增加安全性,可以使用SSL连接保护连接的安全。Lettuce本机支持SSL连接。

import com.lambdaworks.redis.*;
public class ConnectToRedisSSL {
public static void main(String[] args) {
RedisClient redisClient = new RedisClient(
RedisURI.create("rediss://password@host:port"));
RedisConnection connection = redisClient.connect();
System.out.println("Connected to Redis using SSL");
connection.close();
redisClient.shutdown();
}
}

注意:根据服务器的SSL配置,您可能需要使用keytool实用程序在本地JVM中安装证书。

5、使用Lettuce客户端读写数据(set和get)

一旦连接到Redis,您就可以开始读取和写入数据。下面的代码片段将值bar写入到Redis key foo中,然后读取并打印出来:

import com.lambdaworks.redis.*;public class ConnectToRedis {  public static void main(String[] args) {    RedisClient redisClient = new RedisClient(      RedisURI.create("redis://password@host:port"));//password是连接的密码,不需验证删除password@即可    RedisConnection connection = redisClient.connect();    System.out.println("Connected to Redis");    connection.set("foo", "bar");    String value = connection.get("foo");    System.out.println(value);    connection.close();    redisClient.shutdown();  }}

官方文档https://redislabs.com/lp/redis-java/