Найкраща бібліотека Redis для Java [закрито]


75

Офіційна домашня сторінка Redis містить списки JDBC-Redis та JRedis. Які переваги / недоліки кожного з них? Чи є інші варіанти?


2
Мій голос також надходить до джедісів. Має найактивніший розвиток, на мою думку!
Альфред

Відповіді:


74

Ви також можете використовувати джедаїв , які також є на офіційній сторінці клієнтів Redis . Він сумісний з останньою версією Redis.

Оновлення

Станом на червень 2012 року, Jedis - це клієнтська бібліотека Java, рекомендована офіційною сторінкою Redis.


8
Ви можете спробувати Redisson , він реалізує розподілені та масштабовані структури даних Java поверх сервера Redis. Використовуйте знайомі структури даних Java з потужністю Redis.
Микита Кокшаров

1
Сумісність з Java 8?
JohnMerlino

Що ви думаєте про салат? Це також рекомендовано офіційною сторінкою клієнта Redis
melfore

Зараз 3 "рекомендовані" клієнти Redis для Java : джедаї, салат, Redisson.
chrisjleu

13

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


10

І джедаї, і JRedis активно розробляються. Я особисто використовую джедаїв, оскільки, здається, це активніше розробляється.

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/

ОНОВЛЕННЯ Spring Data тепер додало підтримку третьої бібліотеки під назвою rjc (Redis Java Client) - хоча я не знаю, які плюси / мінуси для цього.


5

Джедеї - дуже хороший клієнт. Я використовував Jedis, щоб зробити певний тест продуктивності проти Redis. 50 клієнтів, 1 млн запитів виконано за 20 секунд (на старій машині Intel 2core 2.6g, мережа 100м). Я вважаю, що продуктивність може бути набагато вищою, якщо я зможу використати мережу 1000 м для проведення тесту.


4

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

витяг з їхнього readme на github:

Гаразд .. так що я можу робити з джедаями? [...]

Операції

Трубопровід

Опублікувати / Підписатися

Наполегливість

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

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

Пул з'єднань

Заточування (MD5, MurmureHash)

Ключові мітки для шардінгу

Заточування трубопроводом

До недавнього часу я використовував jredis у півдюжині проектів, швидко переніс їх у джедіс без сюрпризів.


4

Більш простим рішенням є не турбуватися про роботу на найнижчому рівні, а замість цього використовувати Object Hash Mapper (OHM), такий як JOhm. JOhm дозволяє користувачам прикрашати свої існуючі об'єкти знайомими анотаціями, щоб забезпечити стійкість Redis без будь-яких інвазивних змін коду. Він навіть не потребує жодної зовнішньої конфігурації. Ви можете сприймати OHM як аналог NoSQL ORM RDBMS.

Йома розміщується тут


Вибачте, але я б назвав JOhm реалізацією JPA бідним чоловіком. По суті, це вимагає, щоб ви визначили структуру ваших складних об’єктів за допомогою анотацій. Звідси виникає питання, чому ви намагаєтеся зберігати структуровані дані в базі даних "NoSQL". Крім того, він не оновлювався протягом 6 років.
Філ

1

JDBC-Redis - це просто обгортка JDBC для бази даних JRedis.
Якщо ви плануєте використовувати свій код з різними фоновими кодами, тоді JDBC - це хороший спосіб. ПРИМІТКА: Це не є повною реалізацією JDBC, і NOSQL буде просочуватися.
Якщо ви збираєтеся залишитися з Redis, то я б запропонував використовувати API, який надасть вам більшу гнучкість. Використовуйте шаблон шару DAO для інкапсуляції вашого DB Access і вниз по дорозі, і це все, що вам потрібно буде змінити.


2
Синтаксис Redis повністю відрізняється від стандартного SQL, тому використання JDBC не допомагає інкапсулювати різні
фонові

@muriloq - але механічне придбання та вивільнення ресурсів є стандартним.
Romain Hippeau,

Насправді JRedis є клієнтом для Redis, як і JDBC-Redis є "з'єднувачем / клієнтом" для Redis. JDBC-Redis, мабуть, бракує майже всіх пов'язаних з SQL інтерфейсів, що робить це для мене звучанням безглуздо, якщо я щось не пропустив ...
Філ
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.