The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Релиз БД Redis 2.6"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Релиз БД Redis 2.6"  +/
Сообщение от opennews on 24-Окт-12, 15:24 
После года разработки увидел свет (http://antirez.com/news/21) релиз новой стабильной ветки БД Redis 2.6 (http://redis.io/), относящейся к классу NoSQL-систем и развиваемой при содействии компании VMware. Redis предоставляет похожие на Memcached функции для хранения данных в формате ключ/значение, расширенные поддержкой структурированных форматов данных, таких как списки, хэши и множества. В отличие от Memcached, Redis обеспечивает постоянное хранение данных на диске и гарантирует сохранность БД в случае аварийного завершения работы.  Исходные тексты проекта распространяются в рамках лицензии BSD. Клиентские библиотеки доступны для большинства популярных языков, включая Perl, Python, PHP, Java, Ruby и Tcl.

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


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


Ключевые улучшения (https://raw.github.com/antirez/redis/2.6/00-RELEASENOTES), добавленные в Redis 2.6:


-  В Redis встроен интерпретатор Lua и добавлена поддержка написания работающих на стороне сервера скриптов на языке Lua. Для выполнения таких скриптов добавлена команда EVAL (http://redis.io/commands/eval). Из скриптов можно обращаться к функциям Redis через использованием методов .call() и .pcall(). Преобразование типов данных Redis и Lua осуществляется автоматически;


-  Проведена большая работа по повышению стабильности и пригодности Redis для промышленного применения. Решены проблемы с отзывчивостью в условии одновременного завершения времени жизни большого числа элементов (использован новый неблокирующий алгоритм чистки устаревших элементов) или при использовании медленных жестких дисков. Добавлены средства самодиагностики для отслеживания внештатных ситуаций. Изменены настройки по молчанию: вторичные slave-системы теперь по умолчанию работают в режиме только для чтения, при выявления нарушения целостности базы RDB по умолчанию прекращается приём запросов на запись;
-  Удалена подсистема с реализацией виртуальной памяти, позволявшая держать в ОЗУ только ключи, а значения перемещать по мере необходимости в специальный файл подкачки. В качестве причины удаления упоминается низкая эффективность в условиях реального применения;
-  Добавлена возможность определения таймаутов и времени жизни ключей с миллисекундной точностью. Добавлены новые команды PEXPIRE, PSETEX, PTTL, которые оперируют миллисекундами;-  Сняты определённые в коде ограничения на максимальное число клиентов;-  Ускорена работа режима записи AOF (append-only-file) за счёт поддержки перезаписи агрегатных типов данных. Расширена семантика для управления AOF-файлами;-  Оптимизировано потребление памяти при работе с мелкими списками, zip-списками и хэшами, в ситуации когда в них используются небольшие целочисленные значения;-  Добавлены новые битовые команды BITCOUNT и BITOP;-  Поддержка задания для клиентов мягких и жестких лимитов на размер выходного буфера, позволяющих использование разные лимиты для разных классов клиентов;
-  Для всех директив  redis.conf подготовлены аналогичные опции командной строки;-  Увеличена производительности записи больших объектов;-  Реализован встроенный тест памяти (redis-server --test-memory);-  Добавлены команды INCRBYFLOAT и HINCRBYFLOAT;-  Из продукта Redis Cluster портированы команды  DUMP, RESTORE и MIGRATE;-  Для RDB-файлов добавлена проверка целостности по контрольным суммам CRC64;
-  Улучшено поведение команды MONITOR, которая теперь выводит параметры команды до начала её исполнения;-  Добавлена функция  "Software Watchdog" для отладки проблем с отзывчивостью БД;-  Переписана или реструктуризирована значительная часть ядра Redis, что позволило обеспечить формирование Redis Cluster на базе единого кода с Redis. Весь код для работы в режиме кластера временно удалён и будет возвращён в выпуске Redis 3.0, после доработки и стабилизации;-  Расширены возможности утилиты redis-benchmark, добавлена поддержка запуска избранных тестов и возможность вывода результатов в CSV;
-  В команду SHUTDOWN добавлена поддержка необязательных аргументов "SAVE" и "NOSAVE";-  Добавлена команда "INFO commandstats" для вывода статистики как часто выполнялись команды и сколько времени было потрачено на их выполнение;-  Улучшена поддержка систем big endian и *BSD;-  Расширены возможности системы сборки.

URL: http://antirez.com/news/21
Новость: http://www.opennet.me/opennews/art.shtml?num=35158

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


2. "Релиз БД Redis 2.6"  +2 +/
Сообщение от imprtat (ok) on 24-Окт-12, 15:27 
> Сняты определённые в коде ограничения на максимальное число клиентов;

сделал дифф со старым конфигом, дефолтный лимит клиентов с 128 увеличили до 10к

> Из продукта Redis Cluster портированы команды DUMP, RESTORE и MIGRATE;

круто, делать бекапы методом save + копирование rdb файла как-то не очень круто :)

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

8. "Релиз БД Redis 2.6"  +/
Сообщение от Sw00p aka Jerom on 25-Окт-12, 01:24 
удалось обеспечить 110000 операций записи и 81000 операций чтения в секунду.

только мне это кажется странным ?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

9. "Релиз БД Redis 2.6"  +1 +/
Сообщение от Sergey (??) on 25-Окт-12, 15:26 
Мда не секунду тоже подумал, что запись быстрее чтения, но это же память, и скорее всего это связано с алгоритмическими расходами: запись = "тупо" новый ключ, а чтение = поиск + извлечение. Вот думаю, из-за нахождения/поиска и замедляется.
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "Релиз БД Redis 2.6"  +/
Сообщение от Sw00p aka Jerom on 25-Окт-12, 18:08 
угу - кстате так и есть, ток я не пойму там сортировки нет ? или она отложенная ?
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

11. "Релиз БД Redis 2.6"  +/
Сообщение от dr (??) on 25-Окт-12, 20:36 
Классно, что Lua поддержу добавили. Уже написал пару полезных скриптиков для построения динамических рейтингов. По сути - это хранимые процедуры, только именование у них странное: 0806b669673e8f026f0203b91bdb22d292527579, 38d78b4774c35b078a2a458873f8c1ab86ebf117 - мало что говорят на первый взгляд, да и на второй.
Впрочем, в хэше сохранить соотвествие sha1->имя скрипта, загруженного с диска, 2 минут работы. Правда, из redis-cli плохо такие скрипты инспектировать.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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