lettuce--Advanced Redis client
redis官方提供的java client:
git地址:https://github.com/mp911de/lettuce
Advanced Redis client for thread-safe sync, async, and reactive usage. Supports Cluster, Sentinel, Pipelining, and codecs.http://redis.paluch.biz
Introduction
Lettuce is a scalable thread-safe Redis client for synchronous, asynchronous and reactive usage. Multiple threads may share one connection if they avoid blocking and transactional operations such as?BLPOP?and?MULTI/EXEC. lettuce is built with?netty. Supports advanced Redis features such as Sentinel, Cluster, Pipelining, Auto-Reconnect and Redis data models.
This version of lettuce has been tested against Redis and 3.0.
- lettuce 3.x works with Java 6, 7 and 8, lettuce 4.x requires Java 8
- synchronous,?asynchronous?and?reactive?usage
- Redis Sentinel
- Redis Cluster
- SSL?and?Unix Domain Socket?connections
- Streaming API
- CDI?and?Spring?integration
- Codecs?(for UTF8/bit/JSON etc. representation of your data)
- multiple?Command Interfaces
幾個常見的使用方法:
1. 連接單機
package com.lambdaworks.examples;import com.lambdaworks.redis.RedisClient; import com.lambdaworks.redis.RedisConnection; import com.lambdaworks.redis.RedisURI;/*** @author <a href="mailto:mpaluch@paluch.biz">Mark Paluch</a>* @since 18.06.15 09:17*/ public class ConnectToRedis {public static void main(String[] args) {// Syntax: redis://[password@]host[:port][/databaseNumber]RedisClient redisClient = new RedisClient(RedisURI.create("redis://password@localhost:6379/0"));RedisConnection<String, String> connection = redisClient.connect();System.out.println("Connected to Redis");connection.close();redisClient.shutdown();} }2. 連接集群
package com.lambdaworks.examples;import com.lambdaworks.redis.RedisURI; import com.lambdaworks.redis.cluster.RedisAdvancedClusterConnection; import com.lambdaworks.redis.cluster.RedisClusterClient;/*** @author <a href="mailto:mpaluch@paluch.biz">Mark Paluch</a>* @since 18.06.15 09:17*/ public class ConnectToRedisCluster {public static void main(String[] args) {// Syntax: redis://[password@]host[:port]RedisClusterClient redisClient = new RedisClusterClient(RedisURI.create("redis://password@localhost:7379"));RedisAdvancedClusterConnection<String, String> connection = redisClient.connectCluster();System.out.println("Connected to Redis");connection.close();redisClient.shutdown();} }3. 連接sentinel
package com.lambdaworks.examples;import com.lambdaworks.redis.*;/*** @author <a href="mailto:mpaluch@paluch.biz">Mark Paluch</a>* @since 18.06.15 09:17*/ public class ConnectToRedisUsingRedisSentinel {public static void main(String[] args) {// Syntax: redis-sentinel://[password@]host[:port][,host2[:port2]][/databaseNumber]#sentinelMasterIdRedisClient redisClient = new RedisClient(RedisURI.create("redis-sentinel://localhost:26379,localhost:26380/0#mymaster"));RedisConnection<String, String> connection = redisClient.connect();System.out.println("Connected to Redis using Redis Sentinel");connection.close();redisClient.shutdown();} }4.安全的連接
package com.lambdaworks.examples;import com.lambdaworks.redis.*;/*** @author <a href="mailto:mpaluch@paluch.biz">Mark Paluch</a>* @since 18.06.15 09:17*/ public class ConnectToRedisSSL {public static void main(String[] args) {// Syntax: rediss://[password@]host[:port][/databaseNumber]// Adopt the port to the stunnel port in front of your Redis instanceRedisClient redisClient = new RedisClient(RedisURI.create("rediss://password@localhost:6443/0"));RedisConnection<String, String> connection = redisClient.connect();System.out.println("Connected to Redis using SSL");connection.close();redisClient.shutdown();} }5. spring集成
package com.lambdaworks.examples;import com.lambdaworks.redis.*; import org.springframework.beans.factory.annotation.Autowired;/*** @author <a href="mailto:mpaluch@paluch.biz">Mark Paluch</a>* @since 18.06.15 09:31*/ public class MySpringBean {private RedisClient redisClient;@Autowiredpublic void setRedisClient(RedisClient redisClient) {this.redisClient = redisClient;}public String ping() {RedisConnection<String, String> connection = redisClient.connect();String result = connection.ping();connection.close();return result;} }使用代碼如下:
package com.lambdaworks.examples;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.lambdaworks.redis.RedisClient; import com.lambdaworks.redis.RedisConnection;/*** @author <a href="mailto:mpaluch@paluch.biz">Mark Paluch</a>* @since 18.06.15 09:17*/ public class SpringExample {public static void main(String[] args) {ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("com/lambdaworks/examples/SpringTest-context.xml");RedisClient client = context.getBean(RedisClient.class);RedisConnection<String, String> connection = client.connect();System.out.println("PING: " + connection.ping());connection.close();MySpringBean mySpringBean = context.getBean(MySpringBean.class);System.out.println("PING: " + mySpringBean.ping());context.close();}}參考文獻:
【1】https://github.com/mp911de/lettuce
【2】http://redis.paluch.biz
?
轉載于:https://www.cnblogs.com/davidwang456/p/5089502.html
總結
以上是生活随笔為你收集整理的lettuce--Advanced Redis client的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 25个Java机器学习工具库--转载
- 下一篇: jedis连接sentinel示例程序