Лучшая библиотека Redis для Java

На официальной домашней странице Redis перечислены JDBC-Redis и JRedis. Каковы преимущества/недостатки каждого? Есть ли другие варианты?

Ответ 1

Вы также можете использовать Jedis, который также находится в официальная страница клиентов Redis. Он совместим с последней версией Redis.

Update

По состоянию на июнь 2012 года Jedis - это клиентская библиотека Java, рекомендованная официальной страницей Redis.

Ответ 2

Я пробовал JDBC-Redis, Jredis и Jedis. JDBC-Redis плохо разбирается в производительности. JRedis и Jedis оба быстры, я использую Jredis для раз, но теперь я предпочитаю Jedis, потому что это просто, и я могу обрабатывать ошибки сетевого подключения, как я хочу.

Ответ 3

Оба Jedis и JRedis являются активно развивается. Я лично использую Jedis, поскольку он, кажется, более активно развивается.

Spring предоставляет оболочку для обеих реализаций, и они предоставляют сериализацию/десериализацию, среди прочего:

Person p = new Person("Joe", "Trader", 33);
template.convertAndSet("trader:1", p);
Person samePerson = template.getAndConvert("trader:1", Person.class);
Assert.assertEquals(p, samePerson);     

http://git.springsource.org/spring-data/spring-keyvalue-redis/

UPDATE Spring Теперь добавлена ​​поддержка третьей библиотеки под названием rjc (Redis Java Client) - Я не знаю, какие плюсы и минусы для него есть.

Ответ 4

Более простым решением является не беспокоиться о работе на самом низком уровне, но вместо этого использовать объект Hash Mapper (OHM), например, JOhm. JOhm позволяет пользователям украшать свои существующие объекты знакомыми аннотациями, чтобы обеспечить постоянство Redis без каких-либо инвазивных изменений кода. Он даже не нуждается в какой-либо внешней конфигурации. Вы можете думать о OHM как о NoSQL-аналоге ORM РСУБД.

JOhm размещен здесь

Ответ 5

просто обновление: кажется, что jredis больше неактивен, jedis, однако, сильно развит и имеет некоторые замечательные функции, реализованные в последнее время, он также является тем же разработчиком JOhm.

извлечь из их readme на github:

Хорошо... так что я могу сделать с Джедисом? [...]

Сделки

Конвейерная

Publish/Subscribe

Постоянство

команды управления

Команды удаленного управления сервером

Пул соединений

Sharding (MD5, MurmureHash)

Ключевые теги для окантовки

Облицовка конвейером

Я использовал jredis до недавнего времени на полдюжины проектов, переместил их всех в jedis в мгновение ока, без сюрпризов.

Ответ 6

Jedis - очень хороший клиент. Я использовал jedis для проведения теста производительности против redis. 50 клиентов, 1 млн. Запросов, завершенных за 20 секунд (на старой машине intel 2core 2.6g, сети 100 м). Я считаю, что производительность может быть намного выше, если я смогу использовать сеть 1000 м для проведения теста.

Ответ 7

JDBC-Redis - это просто оболочка JDBC для базы данных JRedis.
Если вы планируете использовать свой код с разными концами, то JDBC - это хороший способ. ПРИМЕЧАНИЕ. Это не полная реализация JDBC, и NOSQL будет проходить через.
Если вы собираетесь остаться с Redis, я бы предложил использовать API, который даст вам больше гибкости. Используйте шаблон слоя DAO, чтобы инкапсулировать доступ к БД и вниз по дороге, и это все, что вам нужно будет изменить.