LINUX.ORG.RU

Redis 3.0.0

 , ,


2

1

1-го апреля 2015 года стала доступна новая версия нереляционной СУБД Redis. Основной отличительной особенностью данного релиза является то, что это первая стабильная версия Redis со встроенной поддержкой кластеризации*).

Redis - это нереляционная СУБД типа ключ-значение (key-value) с открытым исходным кодом.

Поддерживает следующие структуры данных:

  • строка (string);
  • хэш (hash);
  • список (list);
  • множество (set);
  • сортированное множество (sorted set);
  • битовый массив (bitmap);
  • HyperLogLog (структура данных для реализации алгоритма рандомизированного вероятностного подсчета количества уникальных значений).

Для всех этих типов поддерживаются атомарные операции (например вставка в список или пересечение множеств). База данных Redis хранится в основной памяти, а для обеспечения долговременного хранения используется синхронизация на диск.

Основные изменения:

  • встроенная поддержка кластеризации;
  • улучшен аппроксимационный алгоритм вытеснения ключей для LRU**)-кешей;
  • добавлена команда CLIENT PAUSE: остановка обработки всех запросов клиента на определенное время;
  • переработан механизм обеспечения долговременного хранения даных AOF***) с целью уменьшения задержек при сбросе буфера на медленных дисках;

*) Redis Cluster Specification
**) least recently used
***) append only file

>>> Подробности

★★★★★

Проверено: maxcom ()

Ответ на: комментарий от shty

так тебе не нужен redis, тебе нужно освоить bulk data loading

Задача такая. Файлы обрабатываются по одному и перед вставкой проверяется на его наличие в базе. Если я буду сначала кэшировать, а потом вставлять, то мне все эти проверки придется делать вручную, в кэше, перед bulk load.

Пишу клиента к оффлайновому архиву книг. Дано: 120Гб архивов по 1000 файлов fb2 в каждом. Цель(уже достигнута, но для SQlite и MySql): Распарсить каждый fb2 и загнать метаинформацию в БД. В принципе я добился приемлемой скорости с помощью многопоточной обработки, но хотелось бы попробовать ускорить еще раз в 10-100. Есть идея что Redis в этом может помочь.

Loki13 ★★★★★ ()
Ответ на: комментарий от Loki13

Задача такая. Файлы обрабатываются по одному и перед вставкой проверяется на его наличие в базе. Если я буду сначала кэшировать, а потом вставлять, то мне все эти проверки придется делать вручную, в кэше, перед bulk load.

все правильно, и именно так будет весьма быстрее :)

Цель(уже достигнута, но для SQlite и MySql): Распарсить каждый fb2 и загнать метаинформацию в БД.

это не цель, это задача, а цель какая? а то может быть взять ElasticSearch и не ломать голову?

120Гб архивов
Есть идея что Redis [..] может помочь.

есть мнение, что поскольку Redis in-memory решение, то Вам хорошо бы иметь систему хотя бы с 64Гб памяти (зависит, конечно, от того как будет использоваться), а иначе особого выигрыша Вы не добьетесь, а только сами себе тянитолкая соорудите

shty ★★★★★ ()
Ответ на: комментарий от Loki13

Есть идея что Redis в этом может помочь.

bdb, leveldb и любые другие встраиваемые KV помогут сильнее.

bj ()
Ответ на: комментарий от shty

это не цель, это задача, а цель какая?

Цель проект дописать и выложить на гитхаб. Уже на 2 месяца от сроков(своих внутренних) затянул, т.к. всё время что-нибудь улучшить хочется.

есть мнение, что поскольку Redis in-memory решение, то Вам хорошо бы иметь систему хотя бы с 64Гб памяти

120Гб это все книги столько занимают. метаинформации(автор, название, издательство, серия) в них максимум 0,1%.

Loki13 ★★★★★ ()
Последнее исправление: Loki13 (всего исправлений: 1)
Ответ на: комментарий от bj

bdb, leveldb и любые другие встраиваемые KV помогут сильнее.

спасибо. почитаю.

Loki13 ★★★★★ ()

нравится редис но хочется хранить данных больше чем памяти. хочется logstash-и натравить на редисы, но чтобы отдельновзятые list-ы, которые реализуют очереди, сбрасывались на хранились диск, не подгружались в память при рестарте.
есть чо такое?

bl ★★★ ()

Зачем скобки после звёздочек?

anonymous ()
Ответ на: комментарий от anonymous

это коммунальные службы снег убирают

shty ★★★★★ ()

Так чем оно лучше rethinkdb?

loz ★★★★★ ()

Кластеризация на основе хэшей ключей ? С master-slave или master-master ( с полной дубликацией данных ) все по прежнему пичально ? ( переключение вручную ?)

Jopich ()
Ответ на: комментарий от Loki13

Если документы - то тогда уж лучше монгу использовать, а redis - он больше «ключ-значение» БД

Jopich ()
Ответ на: комментарий от Jopich

Какой профит монги по сравнению с sql в данной задаче?

makoven ★★★★★ ()
Ответ на: комментарий от Loki13

120Гб это все книги столько занимают. метаинформации(автор, название, издательство, серия) в них максимум 0,1%.

тогда Вам не нужен NoSQL

shty ★★★★★ ()
Ответ на: комментарий от shty

тогда Вам не нужен NoSQL

Т.е. мне NoSql БД не позволит делать запись быстрее(чем MySql) при количестве записей 450к и в 10 потоков. Если нет, то тогда и смысла нет. Хотя должен бы по всем описаниям.

Loki13 ★★★★★ ()
Ответ на: комментарий от Loki13

Т.е. мне NoSql БД не позволит делать запись быстрее(чем MySql) при количестве записей 450к и в 10 потоков.

дело не в этом, дело в том, что это Вам не нужно :)

нужно проиндексировать метаинформацию в умеренных объемах - берите Lucene, эмбеддите его, стройте индекс, и все будет летать и искаться как надо

shty ★★★★★ ()
Ответ на: комментарий от fero

Алсо, как правильно произносить?

Ри-дайс.

anonymous ()
Ответ на: комментарий от Pyzia

База данных Redis хранится в основной памяти

Довольно странное название для оперативной памяти, может стоит поправить, дабы не вводить несведущих в заблуждение?

Нормальное название, для тех, кто помнит типы памяти ДОСа. Действительно, не в EMS же и XMS хранить базу данных если ей хватает остатка от 640 Кб. Это какая экономичность и скорость должна быть у редиски!

Napilnik ★★★★★ ()
Ответ на: комментарий от loz

Так чем оно лучше rethinkdb?

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

bj ()

Вопрос: накой он нужен? Чем плохи механизмы IPC и разделяемой именованной памяти?

leocat3 ()
Ответ на: комментарий от leocat3

Накой нужны базы данных, вель есть read, write, а для неосиляторов даже fprintf, fscanf?

anonymous ()
Ответ на: комментарий от Jopich

У нас в defaultcity админы с вышкой работали на таком окладе после работы в Yandex и не жужжали :). Так что хотеть не вредно, особенно сейчас ...

Не знаю где это у вас и в каком defaultcity. Видимо это были каике-то ламеры, а не админы, которых даже из яши поперли.

Нефиг лепить горбатого, в мск сейчас меньше чем за 80k смысла впахивать нету. И нормальный админ будет от 90k получать, если это не эникеша.

Про «особенно сейчас», это сразу к эрзенту давай топай. Он тебе будет рассказывать о жизни тяжелой.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.