The OpenNET Project / Index page

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

06.05.2016 19:38  Выпуск СУБД Redis 3.2

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

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

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

  • GEO API с возможностью индексирования координат по широте и долготе, вычисления расстояния и указания допустимого радиуса вокруг искомой точки при формировании запросов;
  • Новая команда BITFIELD, позволяющая использовать строки как битовый массив из набора целых чисел. Числа в массиве можно инкрементировать и декрементировать для использования в качестве счётчиков, настраивать поведение при переполнении;
  • Многочисленные улучшения в Redis Cluster, который позволяет развернуть конфигурацию в которой данные автоматически распределяются между несколькими узами Redis. Добавлены средства ребалансировки в redis-trib и улучшена система миграции реплицированных данных. В нестабильной ветке появилась возможность создания узлов за трансляторами адресов и использования средств Docker по перенаправлению портов.
  • Реализован альтернативный способ репликации Lua-скриптов - "репликация эффекта от работы скрипта", при котором вместо репликации самого скрипта реплицируется последовательность команд записи, получаемых в результате выполнения скрипта. При данном режиме репликации Redis сохраняет все команды выполняемые движком Lua, которые приводят к изменению данных в БД, и затем повторяет эти команды на slave-серверах;
  • Добавлен мощный отладчик скриптов Lua, который можно использовать из redis-cli;
  • Увеличена эффективность использования памяти, реализовано новое внутреннее представление списков, значительно экономящих память при хранении больших списков;
  • Реализовано согласование времени жизни ключей на первичных и slave-серверах при выполнении операций чтения;
  • В команду SPOP добавлена поддержка опционального аргумента со счётчиком;
  • В RDB добавлены AUX-поля и увеличена скорость загрузки RDB-файлов;
  • Обеспечена возможность использования Sentinel для мониторинга масштабируемости первичных серверов.


  1. Главная ссылка к новости (http://antirez.com/news/104...)
  2. OpenNews: Представлена Serenity, Redis-совместимая транзакционная СУБД с дисковым хранилищем
  3. OpenNews: Проект по созданию варианта СУБД Redis, переписанного на языке Rust
  4. OpenNews: Выпуск БД Redis 3.0
  5. OpenNews: Ядро операционной системы стало узким местом при выполнении операций в СУБД Redis
  6. OpenNews: Cравнение производительности СУБД Redis, Tarantool, CouchBase и Memcached
Лицензия: CC-BY
Тип: Программы
Ключевые слова: redis, nosql
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.1, Какаянахренразница (ok), 21:54, 06/05/2016 [ответить] [показать ветку] [···]    [к модератору]
  • +/
    Ответ на комментарий гражданина Шталя А. (ныне удалённый): это не сишник, это программист на Lua.

    Redis есть гуд. Не далее, как сегодня (или это было вчера? надо больше спать), перевёл Minetest сервера на redis. Ничё так.

     
     
  • 2.2, A.Stahl (ok), 22:10, 06/05/2016 [^] [ответить]    [к модератору]
  • +1 +/
    Я знаю, что это не сишник. Сишнику не пришло бы в голову демонстрировать свою говорящую голову в углу видео про Redis. Это только хипстеры так могут.
     
     
  • 3.3, Аноним (-), 22:24, 06/05/2016 [^] [ответить]     [к модератору]
  • +1 +/
    Благодаря этому хипстеру редис есть гуд Может ли тов Штааль похвастаться чем... весь текст скрыт [показать]
     
     
  • 4.11, Аноним (-), 02:11, 07/05/2016 [^] [ответить]    [к модератору]  
  • +8 +/
    Его уже неоднократно принужда показать свой гитхаб или закнуться. Ничего не показал, воняет под каждой новостью
     
  • 2.16, Аноним (-), 14:05, 07/05/2016 [^] [ответить]    [к модератору]  
  • +1 +/
    > перевёл Minetest сервера на redis

    Он умеет работать с Redis Cluster? Или как решается проблема "распухания" карты?

     
     
  • 3.20, Какаянахренразница (ok), 06:33, 08/05/2016 [^] [ответить]    [к модератору]  
  • +/
    Мне, с моими тремя игроками, распухание карты в ближайшее время вряд ли грозит, поэтому я не знаю. Из беглого гугления я сделал вывод, что кластер работает прозрачно для клиента -- т.е. достаточно указать адрес:порт одного узла и дальше кластер сам внутри себя будет определять, с какого узла считывать и в какой узел записывать. Я даже близко не спец по БД, но думаю, что проблем быть не должно (база-то не реляционная, связей между записями нет).
     
  • 1.4, Анонче (?), 22:28, 06/05/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • +5 +/
    Когда выйдет СУБД Morkov - позовите!
     
     
  • 2.15, Аноним (-), 12:48, 07/05/2016 [^] [ответить]    [к модератору]  
  • +1 +/
    > Когда выйдет СУБД Morkov - позовите!
    > [b]Re[/b]mote [b]Di[/b]ctionary [b]S[/b]erver

    Когда выучишь хотя бы один  иностранный язык и поймешь, насколько глупы такие шутки — можешь не звать.

     
     
  • 3.21, neponyal (?), 16:53, 08/05/2016 [^] [ответить]    [к модератору]  
  • –1 +/
    И В чем собственно глупость? Почему Вам отсутствие знания иностранных языков не мешает?
    Почему некоторые программные продукты могут называться Питонами, Перлами и прочь,
    а тут какого-то неумного анонима это напрягает?
     
     
  • 4.22, Аноним (-), 22:58, 08/05/2016 [^] [ответить]     [к модератору]  
  • +1 +/
    А некоторые считают, что громко портить воздух 8212 тоже смешно И ведь не об... весь текст скрыт [показать]
     
  • 1.5, Аноним (5), 22:39, 06/05/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • –6 +/
    tarantool лудше
     
     
  • 2.6, Аноним (-), 23:26, 06/05/2016 [^] [ответить]    [к модератору]  
  • +3 +/
    чем?
     
     
  • 3.7, Anonismus (?), 23:32, 06/05/2016 [^] [ответить]    [к модератору]  
  • +4 +/
    Чем Redis
     
  • 2.18, njunkie (ok), 16:57, 07/05/2016 [^] [ответить]    [к модератору]  
  • +2 +/
    Разработчики тарантула не знают что такое ORM, потому и наваяли ЭТО. Простите, но юзать БД от таких специалистов как-то страшно даже
     
     
  • 3.24, Аноним (5), 09:36, 10/05/2016 [^] [ответить]    [к модератору]  
  • –1 +/
    орм для убогих инвалидов

    откройте для себя всю мощь SQL и хранимые процедуры на скриптовых языках

     
  • 1.8, одуванчик (?), 23:40, 06/05/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • +3 +/
    Такой вопрос, если оно постоянно в ОЗУ, значит кешировать ничего не надо? И что будет если БД больше размера ОЗУ?
     
     
  • 2.10, Алексей (??), 01:29, 07/05/2016 [^] [ответить]    [к модератору]  
  • +2 +/
    What happens if Redis runs out of memory?

    Redis will either be killed by the Linux kernel OOM killer, crash with an error, or will start to slow down. With modern operating systems malloc() returning NULL is not common, usually the server will start swapping, and Redis performance will degrade, so you'll probably notice there is something wrong.

    The INFO command will report the amount of memory Redis is using so you can write scripts that monitor your Redis servers checking for critical conditions.

    Redis has built-in protections allowing the user to set a max limit to memory usage, using the maxmemory option in the config file to put a limit to the memory Redis can use. If this limit is reached Redis will start to reply with an error to write commands (but will continue to accept read-only commands), or you can configure it to evict keys when the max memory limit is reached in the case you are using Redis for caching.

    We have documentation if you plan to use Redis as an LRU cache.

     
  • 1.12, Ilya Indigo (ok), 03:39, 07/05/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    Когда для php7 соответствующее pecl-расширение будет собираться и работать?
     
     
  • 2.13, Аног (?), 09:39, 07/05/2016 [^] [ответить]    [к модератору]  
  • +/
    С гитхаба phpredis собирается на ура
     
     
  • 3.14, Ilya Indigo (ok), 10:16, 07/05/2016 [^] [ответить]    [к модератору]  
  • +1 +/
    > С гитхаба phpredis собирается на ура

    Нужно, что бы оно из pecl-а так собиралось, на ура.

     
  • 1.19, увася (?), 20:07, 07/05/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    они транзакции то допилили? раньше была какая-то хрень при обрыве сокета
     
     
  • 2.25, Аноним (5), 09:37, 10/05/2016 [^] [ответить]    [к модератору]  
  • +/
    он сказал "транзакции в NoSQL бд".
    бугога.
     
  • 1.23, увася (?), 01:28, 09/05/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    >Redis поддерживает транзакции, позволяющие выполнить за один шаг группу команд, гарантируя непротиворечивость и последовательность (команды от других запросов не могут вклиниться) выполнения заданного набора команд, а в случае проблем позволяя откатить изменения.

    Ага, читаем доку: "Why Redis does not support roll backs?" http://redis.io/topics/transactions

    Нифига это не транзакции например в команде SETNX нифига не откатывается

     
  • 1.26, noVMware (?), 13:21, 10/05/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    >развиваемой при содействии компании VMware

    VMware уже не та

     

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


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