После года разработки состоялся (http://antirez.com/news/104) релиз СУБД Redis 3.2 (http://redis.io/), относящейся к классу NoSQL-систем и развиваемой при содействии компании VMware. Redis предоставляет похожие на Memcached функции для хранения данных в формате ключ/значение, расширенные поддержкой структурированных форматов данных, таких как списки, хэши и множества, а также возможностью выполнения на стороне сервера скриптов-обработчиков на языке Lua. В отличие от Memcached, Redis обеспечивает постоянное хранение данных на диске и гарантирует сохранность БД в случае аварийного завершения работы. Исходные тексты проекта распространяются в рамках лицензии BSD. Клиентские библиотеки доступны для большинства популярных языков, включая Perl, Python, PHP, Java, Ruby и Tcl.Redis поддерживает транзакции, позволяющие выполнить за один шаг группу команд, гарантируя непротиворечивость и последовательность (команды от других запросов не могут вклиниться) выполнения заданного набора команд, а в случае проблем позволяя откатить изменения. Все данные в полном объёме кэшируются в оперативной памяти. Для управления данными предоставляются такие команды, как инкремент/декремент, стандартные операции над списками и множествами (объединение, пересечение), переименование ключей, множественные выборки и функции сортировки. Поддерживается два режима хранения: периодическая синхронизация данных на диск и ведение на диске лога изменений. Во втором случае гарантируется полная сохранность всех изменений. Возможна организация master-slave репликации данных на несколько серверов, осуществляемая в неблокирующем режиме. Доступен также режим обмена сообщениями "публикация/подписка", при котором создаётся канал, сообщения из которого распространяются клиентам по подписке.
Ключевые улучшения (https://raw.githubusercontent.com/antirez/redis/3.2/00-RELEA...), добавленные в Redis 3.2:
- GEO API (http://redis.io/commands/#geo) с возможностью индексирования координат по широте и долготе, вычисления расстояния и указания допустимого радиуса вокруг искомой точки при формировании запросов;- Новая команда BITFIELD (http://redis.io/commands/bitfield), позволяющая использовать строки как битовый массив из набора целых чисел. Числа в массиве можно инрементировать и декрементировать для использования в качестве счётчиков, настраивать поведение при переполнении;
- Многочисленные улучшения в Redis Cluster, который позволяет развернуть конфигурацию в которой данные автоматически распределяются между несколькими узами Redis. Добавлены средства ребалансировки в redis-trib и улучшена система миграции реплицированных данных. В нестабильной ветке появилась возможность создания узлов за трансляторами адресов и использования средств Docker по перенаправлению портов.- Реализован альтернативный способ репликации (http://redis.io/commands/EVAL) Lua-скриптов - "репликация эффекта от работы скрипта", при котором вместо репликации самого скрипта реплицируется последовательность команд записи, получаемых в результате выполнения скрипта. При данном режиме репликации Redis сохраняет все команды выполняемые движком Lua, которые приводят к изменению данных в БД, и затем повторяет эти команды на slave-серверах;
- Добавлен мощный отладчик скриптов Lua, который можно использовать из redis-cli;
<center><iframe width="640" height="360" src="https://www.youtube.com/embed/IMvRfStaoyM?rel=0" frameborder="0" allowfullscreen></iframe>
</center>- Увеличена эффективность использования памяти, реализовано новое внутреннее представление списков, значительно экономящих память при хранении больших списков;
- Реализовано согласование времени жизни ключей на первичных и slave-серверах при выполнении операций чтения;- В команду SPOP добавлена поддержка опционального аргумента со счётчиком;
- В RDB добавлены AUX-поля и увеличена скорость загрузки RDB-файлов;
- Обеспечена возможность использования Sentinel (http://redis.io/topics/sentinel) для мониторинга масштабируемости первичных серверов.
URL: http://antirez.com/news/104
Новость: http://www.opennet.me/opennews/art.shtml?num=44383
Ответ на комментарий гражданина Шталя А. (ныне удалённый): это не сишник, это программист на Lua.Redis есть гуд. Не далее, как сегодня (или это было вчера? надо больше спать), перевёл Minetest сервера на redis. Ничё так.
Я знаю, что это не сишник. Сишнику не пришло бы в голову демонстрировать свою говорящую голову в углу видео про Redis. Это только хипстеры так могут.
Благодаря этому "хипстеру" редис есть гуд. Может ли тов. Штааль похвастаться чем-то настолько же хорошим и полезным? Или он разработок своих стесняется так же, как и появления в подобных роликах без косметики?
Его уже неоднократно принужда показать свой гитхаб или закнуться. Ничего не показал, воняет под каждой новостью
> перевёл Minetest сервера на redisОн умеет работать с Redis Cluster? Или как решается проблема "распухания" карты?
Мне, с моими тремя игроками, распухание карты в ближайшее время вряд ли грозит, поэтому я не знаю. Из беглого гугления я сделал вывод, что кластер работает прозрачно для клиента -- т.е. достаточно указать адрес:порт одного узла и дальше кластер сам внутри себя будет определять, с какого узла считывать и в какой узел записывать. Я даже близко не спец по БД, но думаю, что проблем быть не должно (база-то не реляционная, связей между записями нет).
Когда выйдет СУБД Morkov - позовите!
> Когда выйдет СУБД Morkov - позовите!
> Remote Dictionary ServerКогда выучишь хотя бы один иностранный язык и поймешь, насколько глупы такие шутки — можешь не звать.
И В чем собственно глупость? Почему Вам отсутствие знания иностранных языков не мешает?
Почему некоторые программные продукты могут называться Питонами, Перлами и прочь,
а тут какого-то неумного анонима это напрягает?
> И В чем собственно глупость?А некоторые считают, что громко портить воздух — тоже смешно. И ведь не объяснишь …
> Почему Вам отсутствие знания иностранных языков не мешает?
А с чего это аноним так решил? По себе судит?
Меня бы незнание пары-тройки языков, как минимум, напрягало.
Но если аноним считает, что ему это не мешает …
> а тут какого-то неумного анонима это напрягает?https://www.opennet.me/~neponyal
> Участник: neponyal
> Тип: АнонимСамокритично. Хотя, осознание проблемы — первый шаг к ее решению! Дерзайте!
tarantool лудше
чем?
Чем Redis
Разработчики тарантула не знают что такое ORM, потому и наваяли ЭТО. Простите, но юзать БД от таких специалистов как-то страшно даже
орм для убогих инвалидовоткройте для себя всю мощь SQL и хранимые процедуры на скриптовых языках
Такой вопрос, если оно постоянно в ОЗУ, значит кешировать ничего не надо? И что будет если БД больше размера ОЗУ?
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.
Когда для php7 соответствующее pecl-расширение будет собираться и работать?
С гитхаба phpredis собирается на ура
> С гитхаба phpredis собирается на ураНужно, что бы оно из pecl-а так собиралось, на ура.
они транзакции то допилили? раньше была какая-то хрень при обрыве сокета
он сказал "транзакции в NoSQL бд".
бугога.
>Redis поддерживает транзакции, позволяющие выполнить за один шаг группу команд, гарантируя непротиворечивость и последовательность (команды от других запросов не могут вклиниться) выполнения заданного набора команд, а в случае проблем позволяя откатить изменения.Ага, читаем доку: "Why Redis does not support roll backs?" http://redis.io/topics/transactions
Нифига это не транзакции например в команде SETNX нифига не откатывается
>развиваемой при содействии компании VMwareVMware уже не та