J2Cache 中使用 Lettuce 替代 Jedis 管理 Redis 连接
2019獨角獸企業重金招聘Python工程師標準>>>
一直以來 J2Cache 都是使用 Jedis 連接 Redis 服務的。Jedis 是一個很老牌的 Redis 的 Java 開發包,使用很穩定,作者維護很勤勉,社區上能搜到的文章也非常非常多。算是使用范圍最廣的 Redis 開發包。但是 Jedis 比較推出時間比較早,整個設計思路比較傳統,例如不支持異步操作,接口設計比較繁瑣老套(相比其他開發包而已),使用連接池占用很多的物理連接資源。當然,這個是可以理解的,比較一個比較早期的開發包,相對其做大的結構調整是很難的,而且用戶也不一定會接受。
自從 2.7.0 版本開始,J2Cache 就增加了 Lettuce 的支持。Lettuce是一個可伸縮線程安全的?Redis 客戶端。多個線程可以共享同一個RedisConnection。它利用優秀 Netty?NIO 框架來高效地管理多個連接。
相比較 Jedis ,我覺得 Lettuce 的優點有如下幾個方面:
- 更加直觀、結構更加良好的接口設計
- 基于 Netty NIO 可以高效管理 Redis 連接,不用連接池方式
- 支持異步操作(J2Cache 暫時沒用到這個特性)
- 文檔非常詳盡
不過 Lettuce 需要至少 Java 8 的支持,好在 J2Cache 也要求至少 Java 8 ,就這么愉快的決定了。
在 J2Cache 2.7.0 版本以及以后的更新版本中,想使用 Lettuce 替代 Jedis 的方法如下:
1. 修改 j2cache.properties 配置:
j2cache.broadcast = lettuce j2cache.L2.provider_class = lettuce2. 修改 j2cache.properties 對應的 Redis 連接信息:
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 包含如下幾種模式:
最后你還需要引入 Lettuce 的 Maven 包支持:
<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。
全文完。
轉載于:https://my.oschina.net/javayou/blog/2247710
總結
以上是生活随笔為你收集整理的J2Cache 中使用 Lettuce 替代 Jedis 管理 Redis 连接的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从零开始学习hadoop之发行版选择
- 下一篇: SystemTap工具的使用基础