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 ()

так вот почему лор был недоступен почти пол часа.

erzent ☆☆ ()

теперь можно пользоваться.

ipeacocks ★★★★★ ()

действительно нужно.

anonymous ()

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

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

Pyzia ★★★★ ()

Забавно, 4 дня как использую эту штуку.
Алсо, как правильно произносить?

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

НУЖНО!

плюсую вас, действительно отличный продукт

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

это key-value in-memory cache, а что такое «реестр» я не знаю :)

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

Довольно странное название для оперативной памяти, может стоит поправить

опечатка, но уже отредактировать не могу (скора не хватает?)

shty ★★★★★ ()

Где сие юзать простому линуксоиду?

Stalin ★★★★★ ()

Я правильно понимаю, что это пойдет как замена memcached?

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

Я правильно понимаю, что это пойдет как замена memcached?

вообще да, вот была хорошая статейка, на полшишечки устарела, но в основном все верно:

Why Redis beats Memcached for caching

Redis is more powerful and more flexible and usually the right choice, but Memcached still has its place

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

Это гораздо лучше memcached, сфера применения куда шире благодаря многообразию структур данных.

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

cache подразумевает часто функцию фонового наполнения или write-behind, write-through. А это просто своеобразная СУБД

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

Зато такой кеш сразу (с некоторыми оговорками) горяч после рестарта.

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

Это скорее не NoSQL, а memcached с возможностью сбросить содержимое на диск, чтобы стартовать с прогретым кешем.

selivan ★★★ ()

Как они лихо на 3.0 скакнули.

mix_mix ★★★★★ ()

Зычем client pause?

Subj

anonymous ()
Ответ на: Зычем client pause? от anonymous

Re: Зычем client pause?

А шоб не мешал людям работать

anonymous ()
Ответ на: Зычем client pause? от anonymous

Чтобы сделать миграцию на новый мастер без потери данных.

bj ()

больше редисок - хороших и разных !

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

Ага, где у мемкеша write-behind? Еще скажи, что мемкеш - не кеш)) Кеш - это чисто логическое понятие, кешом хоть рсубд может быть в некоторых случаях (кеш http запросов, например)

dizza ★★★★★ ()

А есть какие-нибудь удобные способы работать с Redis из Qt? Я тут пытался прикрутить к проекту MongoDB, но что-то нормально так и не осилил. Да и вообще про работу из Qt с NoSQL базами подозрительно мало информации, всё какие-то неоконченные обсуждения остановившиеся в 2012м году.

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

А есть какие-нибудь удобные способы работать с Redis из Qt?

конечно, надо только забыть слово Qt и вспомнить слово C++, а дальше смотреть, например, в сторону official C client

а если не устраивает степень удобства - пишете враппер и все счастливы

PS с монгой все то же самое

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

cache подразумевает часто функцию фонового наполнения или write-behind, write-through. А это просто своеобразная СУБД

давайте плясать от печки:

Cache (computing), a collection of data duplicating original values stored elsewhere [..].

и да, это своеобразная СУБД ))

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

а если не устраивает степень удобства - пишете враппер и все счастливы

я своим вопросом подразумевал «а не знает ли кто враппера хорошего?». то что С\С++ клиенты есть - я в курсе.

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

я своим вопросом подразумевал «а не знает ли кто враппера хорошего?»

1) не надо подразумевать, надо писать как есть (ведь это не сложно), а не нагружать не по делу и без того перегруженных телепатов
2) зачем Вам враппер?

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

зачем Вам враппер?

1. Чтобы код был в едином стиле(Qt).

2. Чтобы типы данных были кутевые.

3. Чтобы самому это всё(обертку) не писать.

В идеале вообще использовать QDatabase с драйвером Redis(можно MongoDB), но такого боюсь нет и в ближайшее время не будет.

//Для MongoDB нашел только враппер на QML, а это немного не то.

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

Да, все верно, писаки на Qt ограничены формошлепством, шаг в сторону — сразу нужен "компонент". В этом мире никогда ничего не меняется.

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

Написать можно и самому всё что угодно (Qt достаточно гибок для этого), но гораздо разумнее поискать, нельзя ли интегрировать уже готовое решение подзадачи, нежели самостоятельно велосипедить, увеличивая сроки и стоимость продукта.

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

Чтобы самому это всё(обертку) не писать.

Qt не умеет в обычный C/C++? Только через обертки?

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

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

А если учесть, что у меня и без этого всё работает в модуле общения с БД(пока что использую MySql и SQLite), то заморачиваться лень. А вот если бы удобная обертка нашлась, то я бы добавил работу с NoSql для увеличения скорости работы с БД. У меня довольно критична скорость записи в БД, т.к. у меня 480тыс записей надо вставить, а в MySql вставка 50тыс. занимает 3 минуты(да, записи вставляются по одной).

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

Qt не умеет в обычный C/C++? Только через обертки?

Ниже описал юзкейс и причину почему использовать хочу только если смогу это сделать без особых усилий.

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

Это скорее не nosql, а memcached со свопингом на диск и поддержкой списков.

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

Да, все верно, писаки на Qt ограничены формошлепством, шаг в сторону — сразу нужен «компонент». В этом мире никогда ничего не меняется.

Эээ, как-то подозрительно Делпхи напоминает :)

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

нельзя ли интегрировать уже готовое решение

Это родовое проклятие плюсов, каждый свелосипедил по домашнему stl и сейчас мудохаются с адаптерами друг-в-друга. Страдайте дальше, чо.

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

Тащемта, никто не мешает привернуть туда буст, прочий обязательный список костылей любого уважающего себя крестовика, и делать что душе угодно. Хоть писать темплейты, увеличивающие время компиляции до 3-4 часов.

А кьюту оставить междумордие (в том числе, рисование формочек и слоты с сигналами).

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

А кьюту оставить междумордие (в том числе, рисование формочек и слоты с сигналами).

И тут возникает самый главный вопрос. Зачем междумордию нужны кресты?

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

Так кьют из крестов скорее делает жябу. Т.е. сильно упрощает писание кода (ну и плюс конструктор формочек).

Это сильно удобнее, чем трахаться с каким-нибудь GTK2, пытающимся делать ООП на чистом си. И через весьма нетривиальную задницу использовать glade.

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

Не, ну а так да, с точки зрения «мне так писать удобнее» можно наверное интерфейс накидать на wxerlang, прилагу на крестах и повесить между ними например rabbitmq. И ещё спать на потолке, да штаны через голову одевать.

svr4 ()
Последнее исправление: svr4 (всего исправлений: 3)
Ответ на: комментарий от svr4

повесить между ними например rabbitmq

Не rabbit, а redis pub/sub. Не надо отвлекаться от темы сабжа

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

Чтобы код был в едином стиле(Qt).

ну так пишите в едином стиле, кто мешает?

Чтобы типы данных были кутевые.

у Qt какие-то свои типы данных? О_о

Чтобы самому это всё(обертку) не писать.

она на ходу не переобуваясь пишется, если делать под свою задачу

В идеале вообще использовать QDatabase с драйвером Redis(можно MongoDB), но такого боюсь нет и в ближайшее время не будет.

не надо бояться - возьми и сделай, это не rocket science в конце концов, а кто-нибудь тебе спасибо скажет

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

А вот если бы удобная обертка нашлась, то я бы добавил работу с NoSql для увеличения скорости работы с БД. У меня довольно критична скорость записи в БД, т.к. у меня 480тыс записей надо вставить, а в MySql вставка 50тыс. занимает 3 минуты(да, записи вставляются по одной).

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

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