一直以來 J2Cache 都是使用 Jedis 鏈接 Redis 服務的。Jedis 是一個很老牌的 Redis 的 Java 開發包,使用很穩定,做者維護很勤勉,社區上能搜到的文章也很是很是多。算是使用範圍最廣的 Redis 開發包。可是 Jedis 比較推出時間比較早,整個設計思路比較傳統,例如不支持異步操做,接口設計比較繁瑣老套(相比其餘開發包而已),使用鏈接池佔用不少的物理鏈接資源。固然,這個是能夠理解的,比較一個比較早期的開發包,相對其作大的結構調整是很難的,並且用戶也不必定會接受。git
自從 2.7.0 版本開始,J2Cache 就增長了 Lettuce 的支持。Lettuce是一個可伸縮線程安全的 Redis 客戶端。多個線程能夠共享同一個RedisConnection。它利用優秀 Netty NIO 框架來高效地管理多個鏈接。redis
相比較 Jedis ,我以爲 Lettuce 的優勢有以下幾個方面:安全
不過 Lettuce 須要至少 Java 8 的支持,好在 J2Cache 也要求至少 Java 8 ,就這麼愉快的決定了。框架
在 J2Cache 2.7.0 版本以及之後的更新版本中,想使用 Lettuce 替代 Jedis 的方法以下:異步
1. 修改 j2cache.properties 配置:ide
j2cache.broadcast = lettuce j2cache.L2.provider_class = lettuce
2. 修改 j2cache.properties 對應的 Redis 鏈接信息:ui
lettuce.namespace = lettuce.storage = hash lettuce.channel = j2cache lettuce.scheme = redis lettuce.hosts = 127.0.0.1:6379 lettuce.password = lettuce.database = 0 lettuce.sentinelMasterId =
其中 lettuce.scheme 包含以下幾種模式:spa
最後你還須要引入 Lettuce 的 Maven 包支持:.net
<dependency> <groupId>io.lettuce</groupId> <artifactId>lettuce-core</artifactId> <version>5.1.1.RELEASE</version> <scope>provided</scope> </dependency>
當你在啓動日誌中看到以下信息就代表 Lettuce 已經正常工做:線程
[main] INFO net.oschina.j2cache.CacheProviderHolder - Using L2 CacheProvider : net.oschina.j2cache.lettuce.LettuceCacheProvider
[main] INFO io.lettuce.core.EpollProvider - Starting without optional epoll library
[main] INFO io.lettuce.core.KqueueProvider - Starting without optional kqueue library
[main] INFO net.oschina.j2cache.cluster.ClusterPolicy - Connected to redis channel:j2cache, time 680 ms.
[main] INFO net.oschina.j2cache.J2CacheBuilder - Using cluster policy : net.oschina.j2cache.lettuce.LettuceCacheProvider
使用有任何問題歡迎到 https://gitee.com/ld/J2Cache 提交 Issue。
全文完。