Лучшая библиотека Redis для Java
На официальной домашней странице Redis перечислены JDBC-Redis и JRedis. Каковы преимущества / недостатки каждого? Есть ли другие варианты?
7 ответов
Вы также можете использовать Jedis, который также находится на официальной странице клиентов Redis. Он совместим с последней версией Redis.
Обновить
По состоянию на июнь 2012 года Jedis является клиентской библиотекой Java, рекомендованной официальной страницей Redis.
Я пробовал JDBC-Redis, Jredis и Jedis. JDBC-Redis не очень хорош в производительности. JRedis и Jedis работают быстро, я использую Jredis несколько раз, но теперь я предпочитаю Jedis, потому что это просто, и я могу обрабатывать ошибки сетевого подключения по своему усмотрению.
И 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 Data добавлена поддержка третьей библиотеки под названием rjc (Redis Java Client) - хотя я не знаю, какие плюсы и минусы у нее есть.
Джедис очень хороший клиент. Я использовал джедаев, чтобы сделать тест производительности на Redis. 50 клиентов, 1 млн запросов были выполнены за 20 секунд (на старой машине Intel 2core 2.6g, 100 м сети). Я считаю, что производительность может быть намного выше, если я смогу использовать 1000-метровую сеть для проведения теста.
Более простое решение - не беспокоиться о работе на самом низком уровне, а вместо этого использовать Object Hash Mapper (OHM), такой как JOhm. JOhm позволяет пользователям украшать свои существующие объекты знакомыми аннотациями, чтобы обеспечить сохранность Redis без каких-либо инвазивных изменений кода. Это даже не требует какой-либо внешней настройки. Вы можете представить OHM как аналог NoSQL для ORM СУБД.
JOhm находится здесь
Просто обновление: кажется, что jredis уже не так активен, однако jedis набирает силу и недавно реализовал несколько замечательных функций, он также разработчик JOhm.
извлечь из их readme на github:
Хорошо... так что я могу сделать с джедаями? [...]
операции
Pipelining
Публикация / подписка
Упорство
управляющие команды
Команды удаленного управления сервером
Пул подключений
Sharding (MD5, MurmureHash)
Ключевые теги для шардинга
Шардинг с конвейерной обработкой
До недавнего времени я использовал jredis в полдюжине проектов, переместил их всех в джедаи в кратчайшие сроки, без сюрпризов.
JDBC-Redis - это просто оболочка JDBC для базы данных JRedis.
Если вы планируете использовать свой код с разными бэк-эндами, то JDBC - хороший способ. ПРИМЕЧАНИЕ. Это не полная реализация JDBC, и NOSQL будет удален.
Если вы собираетесь остаться с Redis, я бы предложил использовать API, что даст вам больше гибкости. Используйте шаблон слоя DAO, чтобы инкапсулировать ваш доступ к БД, и в будущем это все, что вам нужно изменить.