The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Релиз БД Redis 2.4

19.10.2011 15:21

Представлен релиз новой стабильной ветки БД Redis 2.4, относящейся к классу NoSQL-систем и развиваемой при содействии компании VMWare. Redis предоставляет похожие на Memcached функции для хранения данных в формате ключ/значение, расширенные поддержкой структурированных форматов данных, таких как списки, хэши и множества. В отличие от Memcached, Redis обеспечивает постоянное хранение данных на диске и гарантирует сохранность БД в случае аварийного завершения работы. Исходные тексты проекта распространяются в рамках лицензии BSD. Клиентские библиотеки доступны для большинства популярных языков, включая Perl, Python, PHP, Java, Ruby и Tcl. Почти сразу после Redis 2.4.0 был выпущен корректирующий релиз 2.4.1 с исправлением нескольких проблем.

Для управления данными поддерживаются такие команды, как инкремент/декремент, стандартные операции над списками и множествами (объединение, пересечение), переименование ключей, множественные выборки и функции сортировки. Поддерживается два режима хранения: периодическая синхронизация данных на диск и ведение на диске лога изменений. Во втором случае гарантируется полная сохранность всех изменений. Возможна организация master-slave репликации данных на несколько серверов, осуществляемая в неблокирующем режиме. Доступен также режим обмена сообщениями "публикация/подписка", при котором создаётся канал, сообщения из которого распространяются клиентам по подписке.

Имеется поддержка транзакций, позволяющих выполнить за один шаг группу команд, гарантируя непротиворечивость и последовательность (команды от других запросов не могут вклиниться) выполнения заданного набора команд, а в случае проблем позволяя откатить изменения. Все данные в полном объёме кэшируются в оперативной памяти. Хранение всех данных в оперативной памяти позволяет добиться значительной производительности: при тестировании Redis на сервере с CPU Xeon X3320 2.5 ГГц удалось обеспечить 110000 операций записи и 81000 операций чтения в секунду.

Ключевые улучшения, добавленные в Redis 2.4:

  • За счёт использования специального кодирования при работе с отсортированными списками, удалось заметно понизить потребление памяти при использовании небольших упорядоченных списков;
  • Увеличена скорость загрузки и сохранения для списков, включающих уже сериализованные данные. Например, исключено выполнение дублирующей сериализации для использующих специальное кодирование типов ziplist, zipmap и intset;
  • Возможность одновременного указания нескольких значений для почти всех команд, связанных с записью: SADD, HDEL, SREM, ZREM, ZADD и L/RPUSH. Например, "HDEL hash field2 field3 field3..." позволяет за раз удалить несколько элементов;
  • Поддержка библиотеки Jemalloc с реализацией высоко эффективных функций распределения памяти, которая теперь используется по умолчанию при работе на платформе Linux. Jemalloc позволяет заметно снизить уровень фрагментации памяти;
  • Сокращено потребление памяти в процессе записи данных за счёт сокращения числа операций дублирующего копирования (copy-on-write) при работе с хранилищем RDB и логом AOF;
  • Расширение числа информационных полей, выводимых при выполнении команды INFO. Например, дополнительно отображается пиковое потребление и пиковая фрагментация памяти, время форка.
  • Новая отладочная команда OBJECT для анализа объектов. Команда позволяет изучить внутренности объектов, ассоциированных с ключами, понять используется ли дополнительное кодирование для ключей. При использовании Redis в качестве кэша выдаваемая командой OBJECT информация может быть полезна для реализации механизма вытеснения ключей, работающего на уровне приложения;
  • Новая отладочная команда CLIENT для анализа клиентов. Команда позволяет посмотреть список клиентов и при необходимости принудительно разорвать соединение;
  • Поддержка выполнения соединения от slave к master в неблокирующем режиме (репликация реализована в неблокирующем режиме изначально, но выполнение операции connect могло приводить к блокировке);
  • Улучшена обработка соединений в командной оболочке redis-cli, например, теперь производится реконнект после обрыва связи. Добавлена поддержка указания цифровых префиксов перед командами, через которые передаётся число повторов. Например, "4 ping" приведёт к выполнению команды ping четыре раза подряд. В сочетании с утилитой grep теперь возможен мониторинг отдельных параметров INFO, например: "./redis-cli -r 10000 -i 1 info | grep used_memory_human";
  • Расширены возможности команды redis-benchmark, которая теперь может измерять производительность произвольной команды, заданной пользователем;
  • При выполнении утилиты make, вывод теперь выделяется разными цветами, что упрощает восприятие ошибок и предупреждений на этапе сборки;
  • Подсистема с реализацией виртуальной памяти признана устаревшей. В будущих версиях код VM будет удалён, как не эффективный и не оправдавший надежды. Механизм VM, позволял держать в ОЗУ только ключи, а значения перемещать по мере необходимости в специальный файл подкачки.
  • Многочисленные оптимизации производительности и устранение ошибок;
  • Подготовлен порт Redis для платформы Windows;


  1. Главная ссылка к новости (http://twitter.com/#!/antirez/...)
  2. OpenNews: Проект NewSQL призван решить проблемы, с которыми столкнулся Facebook, используя MySQL
  3. OpenNews: Релиз БД Apache Cassandra 1.0
  4. OpenNews: Представлена новая NoSQL БД Hibari, созданная для больших хранилищ данных
  5. OpenNews: Релиз документо-ориентированной СУБД MongoDB 1.6
  6. OpenNews: Создатели CouchDB и SQLite представили UnQL, аналог SQL для систем NoSQL
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/32081-nosql
Ключевые слова: nosql, redis
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (14) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, midori (ok), 17:13, 19/10/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Набирается веселая компания //NoSQL\\:CouchDB vs MongoDB vs Cassandra vs Redis vs Riak vs Membase vs HBase vs Neo4j. Сами пользуем free-радиус с привязкой... к mongodb (авторизация впн-пользователей).
     
     
  • 2.2, Аноним (-), 17:20, 19/10/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Могли бы сразу огласить весь список http://nosql-database.org/
     
  • 2.3, Аноним (-), 17:32, 19/10/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Как они по скорости по сравнению с дельфинчиком и слоником?
     
     
  • 3.10, ДяДя (?), 21:35, 19/10/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Один сервер OrientDB, например, делает работу равную 125-ти серверам MySQL http://code.google.com/p/orient/ . Это несмотря на то, что она на Java написана. Правда она и редис по производительности обходит :-). На ноутбуке с core i7 150000 записей в секунду.
     
     
  • 4.15, pro100master (ok), 00:17, 20/10/2011 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Фигня какая-то. Тут http://www.opennet.ru/opennews/art.shtml?num=32064 1М на Xeon.
     
     
  • 5.16, ДяДя (?), 11:39, 20/10/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Так это ж тупо ключ/значение в памяти. Большая разница ;-)
     
     
  • 6.19, Аноним (-), 02:46, 21/10/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Redis — то же самое, в общем-то. Только сверху сахарком удобно посыпано (списки, множества), не надо все делать руками.

    Почитайте Сальваторе, он не так давно писал очень подробно у себя в бложике, как в Редисе что хранится.

     

  • 1.6, Аноним (-), 19:20, 19/10/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А в чем отличия от Cassandra?
     
     
  • 2.13, Аноним (-), 21:43, 19/10/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > А в чем отличия от Cassandra?

    Как минимум, фундаментальное - хранит весь dataset в памяти.

     

  • 1.7, Аноним (-), 20:10, 19/10/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Редис хорош свое функциональностью. это в отличии от мемкешд.
    Праша ди ресурсов есть больше.
    но ради только redic-cli и команды keys * я бы выбрал именно его.
     
     
  • 2.12, Аноним (-), 21:43, 19/10/2011 [^] [^^] [^^^] [ответить]  
  • +/
    memcached-cli пишется за пол-часа, из котороых половина времени — борьба с ленью.

    Вот невозможность толком просмотреть ключи — это да.

     

  • 1.11, Аноним (-), 21:41, 19/10/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Встреченные в работе минусы Redis:

    - Набор команд инконсистентен (напимер, есть GETSET, но нет HGETSET)
    - Блокирующая event-based модель, тяжелая операция может «завесить» весь сервер.
    - Отсутствие поддержки IPv6 (есть в различных форках, но форки серьезно остают от master)
    - Отсутствие per-DB привелегий
    - Редкие, но меткие падения, когда даже AOF может не спасти.

    Некоторые - просто мелочная фигня, некоторые - неприятно.

     
  • 1.14, midori (ok), 22:36, 19/10/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >>Могли бы сразу огласить весь список http://nosql-database.org/

    могли! Но, это сделали вы. я, привел лишь те db(nosql), которые "пробовал на зуб")

    >>Как они по скорости по сравнению с дельфинчиком и слоником?

    вопрос, весьма не состоятельный,...?? разный подход, разные задачи, в моем аспекте, то: монга, сейчас обслуживает 7000 vpn users - ноу проблем, до этого крутился под эту задачу postgresql (первоначально переход был обусловлен, лишь желанием "посношаться" с чем-то другим, но в то же время не уйти далеко от первоначальной концепции заложенной в sql-based, в итоге получили отличную обработку динамических запросов)

    >>А в чем отличия от Cassandra?

    у касандры шикарная скорость записи, особенно с компонентами на жаве (кстати, она из нее и слеплена), ну, а редис хорош для часто/быстро меняющихся данных в d
    b, например на каких-нибудь торгах или биржи /etc

     
     
  • 2.17, ДяДя (?), 11:46, 20/10/2011 [^] [^^] [^^^] [ответить]  
  • +/
    OrientDB всех порвёт ;-)
    Скоро релиз будет, но и сейчас 1.0rc6 вполне юзабельна. neo4j кое-где в 17 раз делает.

    Основа - это ключ/значение база. Над этим построена граф-база и документ-база. На документ-базе построена объектная база.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру