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依赖
<dependency> <groupId>biz.paluch.redis</groupId> <artifactId>lettuce</artifactId> <version>3.2.Final</version> </dependency>
其它版本: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<String, String> connection = redisClient.connect(); System.out.println("Connected to Redis"); connection.close(); redisClient.shutdown(); } }
使用Spring时,则可以使用Spring XML创建一个实例,内容如下:
<bean id="RedisClient" class="com.lambdaworks.redis.support.RedisClientFactoryBean"> <property name="uri" value="redis://host:port"/> </bean>
使用代码:
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<String, String> connection = 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"));
RedisConnection<String, String> 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<String, String> 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/