Lettuce 是一個可擴展的線程安全 Redis 用戶端,適用於同步、非同步和反應式使用。如果多個執行緒避免阻塞和事務性操作(例如BLPOP
和MULTI
/ EXEC
,則它們可以共用一個連線。 Lettuce是用netty建構的。支援進階 Redis 功能,例如 Sentinel、叢集、管道、自動重新連接和 Redis 資料模型。
此版本的 Lettuce 已針對最新的 Redis 原始碼版本進行了測試。
有關更多詳細信息,請參閱參考文件和 API 參考。
在 Redis 大學免費學習
試試 Redis 雲
深入了解開發者教學課程
加入 Redis 社區
在 Redis 工作
Maven、Ivy、Gradle 等的二進位檔案和依賴資訊可以在 http://search.maven.org 找到。
Maven 中央儲存庫中提供了 Lettuce 的版本。另請查看發布版本。
Maven 範例:
< dependency >
< groupId >io.lettuce</ groupId >
< artifactId >lettuce-core</ artifactId >
< version >x.y.z</ version >
</ dependency >
如果您希望獲得即將發布的主要版本的最新快照,請使用我們的 Maven 快照儲存庫並聲明適當的依賴項版本。
< dependency >
< groupId >io.lettuce</ groupId >
< artifactId >lettuce-core</ artifactId >
< version >x.y.z.BUILD-SNAPSHOT</ version >
</ dependency >
< repositories >
< repository >
< id >sonatype-snapshots</ id >
< name >Sonatype Snapshot Repository</ name >
< url >https://oss.sonatype.org/content/repositories/snapshots/</ url >
< snapshots >
< enabled >true</ enabled >
</ snapshots >
</ repository >
</ repositories >
RedisClient client = RedisClient . create ( "redis://localhost" );
StatefulRedisConnection < String , String > connection = client . connect ();
RedisStringCommands sync = connection . sync ();
String value = sync . get ( "key" );
每個 Redis 指令都由一個或多個方法實現,其名稱與小寫 Redis 指令名稱相同。具有多個更改結果類型的修飾符的複雜命令包括 CamelCased 修飾符作為命令名稱的一部分,例如 zrangebyscore 和 zrangebyscoreWithScores。
有關更多詳細信息,請參閱基本用法。
StatefulRedisConnection < String , String > connection = client . connect ();
RedisStringAsyncCommands < String , String > async = connection . async ();
RedisFuture < String > set = async . set ( "key" , "value" );
RedisFuture < String > get = async . get ( "key" );
LettuceFutures . awaitAll ( set , get ) == true
set . get () == "OK"
get . get () == "value"
有關更多詳細信息,請參閱非同步 API。
StatefulRedisConnection < String , String > connection = client . connect ();
RedisStringReactiveCommands < String , String > reactive = connection . reactive ();
Mono < String > set = reactive . set ( "key" , "value" );
Mono < String > get = reactive . get ( "key" );
set . subscribe ();
get . block () == "value"
有關更多詳細信息,請參閱反應式 API。
RedisPubSubCommands < String , String > connection = client . connectPubSub (). sync ();
connection . getStatefulConnection (). addListener ( new RedisPubSubListener < String , String >() { ... })
connection . subscribe ( "channel" );
Lettuce 是使用 Apache Maven 建置的。測試需要針對使用Makefile
配置的不同測試案例執行多個 Redis 實例。預設情況下針對 Redis unstable
運行測試。
建構:
$ git clone https://github.com/redis/lettuce.git
$ cd lettuce/
$ make prepare ssl-keys
$ make test
redis
): make prepare
make ssl-keys
make test
make start
make stop
對於錯誤、問題和討論,請使用 GitHub 問題。
Github 用於社交編碼:如果您想編寫程式碼,我鼓勵透過來自此儲存庫的分支的拉取請求進行貢獻。建立 Bug 和新功能的 Github 票證,並對您感興趣的內容進行評論,並查看 CONTRIBUTING.md