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@即可 RedisConnectionconnection = 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() { RedisConnectionconnection = redisClient.connect(); String result = connection.ping(); connection.close(); return result; }}
注意:
通常程序退出后,需要使用shutdown
方法关闭:
redisClient.shutdown();
如果使用的是Spring
和CDI
,则框架将负责管理资源,而不必使用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"));
RedisConnectionconnection = 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@即可 RedisConnectionconnection = 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/