Lettuce — это масштабируемый потокобезопасный клиент Redis для синхронного, асинхронного и реактивного использования. Несколько потоков могут использовать одно соединение, если они избегают блокировок и транзакционных операций, таких как BLPOP
и MULTI
/ EXEC
. Салат построен из сетки. Поддерживает расширенные функции Redis, такие как Sentinel, Cluster, Pipelining, Auto-Reconnect и модели данных Redis.
Эта версия Lettuce была протестирована на последней сборке исходного кода Redis.
Дополнительные сведения см. в справочной документации и справочнике по API.
Учитесь бесплатно в Университете Redis
Попробуйте облако Redis
Погрузитесь в руководства для разработчиков
Присоединяйтесь к сообществу Redis
Работа в Редисе
Двоичные файлы и информацию о зависимостях для Maven, Ivy, Gradle и других можно найти по адресу http://search.maven.org.
Релизы салата доступны в центральном репозитории Maven. Также обратите внимание на релизы.
Пример для 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. Для тестов требуется несколько запущенных экземпляров Redis для разных тестовых случаев, которые настраиваются с помощью Makefile
. По умолчанию тесты выполняются для unstable
Redis.
Чтобы построить:
$ 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 предназначен для социального программирования: если вы хотите писать код, я поощряю участие через запросы на включение из форков этого репозитория. Создавайте билеты на Github для выявления ошибок и новых функций, комментируйте те, которые вас интересуют, и заглядывайте в CONTRIBUTING.md.