Документация по Redis: новое за полгода

Redis logo
С полгода назад публиковал здесь ссылку на свой перевод документации по Redis.

Для тех, кто не знает, что такое Redis — Redis, это NoSQL-база данных. Для тех, кто не знает, что такое NoSQL — Redis, это круто.

За прошедшее время в Redis накопились немалые изменения. Теперь все они отражены в обновлённом переводе. Здесь рассмотрим основное.

Хэши

Новый тип данных, представляющий собой, собственно, хэши :)

Теперь не надо хранить поля объекта в куче различных ключей типа user:10:name, user:10:surname. Всё в одном, да и удалить этого user’а-10 теперь можно одним запросом.

Упорядоченные множества

Были они, честно говоря, ещё и на момент прошлого перевода, но в нестабильной версии.

Теперь всё стабильно, плюс новые полезные команды для работы с ними.

Кто не в курсе, упорядоченные множества: коллекция элементов, отсортированных по определённому значению. Подходят для реализации аналога индексов в реляционных базах.

Транзакции

Не совсем такие, к каким мы привыкли, но выполняют своё основное предназначение: позволяют исполнить последовательность команд в виде одной атомарной операции.

Система подписок

Ещё один удобный вариант реализации очереди сообщений. В веб-приложениях подходит для демонов, обрабатывающих поступающие данные (рассылка писем, индексирование …)

Всякое другое

Наконец появился атомарный SET + EXPIRE, а то раньше приходилось бояться, что между этими двумя командами вклинится апокалипсис.

Также в ближайшее время обещают снять все ограничения на действия с волатильными ключами (теми, для которых установлен таймаут). Сейчас их нельзя сохранять (просто удаляться нафиг), это, конечно, обосновано с точки зрения архитектуры сервера, но ужасно раздражает. Надеемся, что скоро этого не будет.

Конфигурирование на лету

Ещё много новых полезных команд (PERSIST, APPEND, SUBSTR, ZRANK …) и новых опций к уже существующим.

Также немало переработаны внутренности сервера, связанные с виртуальной памятью, AOF-режимом и т.д.

Вобщем, Redis ещё охуеннее!

Redis: установка на локалку (Ubuntu)

Redis logo
Не так давно, я публиковал здесь перевод официальной документации по Redis. Теперь попробуем пощупать этот самый Редис непосредственно.

Первым делом его, конечно же, нужно установить. Здесь я опишу установку на Ubuntu 9.10. Также подразумевается, что устанавливаем мы его не на рабочий сервер, а на собственную машину для личных нужд. Установка на другие nix’ы вряд ли будет сильно отличаться.

Официальной поддержки Windows нет. Есть отдельная сборка, которая у меня вполне работала. К сожалению, последний релиз датирован прошлым апрелем и содержит достаточно старую версию сервера (0.91).
Остальной текст под катом

Redis: перевод официальной документации

Redis logo

По роду деятельности довелось поработать с Redis. И, как оказалось, вещь эта более чем интересная. Для лучшего ознакомления я даже сделал перевод официальной документации, который здесь и представляю.

Для тех, кто не в курсе: Redis, это хранилище типа «ключ-значение» (key-value). Как Memcached (вернее MemcacheDB с его постоянным хранением данных), только круче :).
 
От мемкэша Redis оставил себе скорость и простоту доступа к данным по ключам, а так же легкость в разнесении большого хранилища на множество серверов. Однако, если Memcached в качестве значений поддерживал только строки, то Redis поддерживает также более сложные типы данных (списки и множества). И, вместе с этими типами, также имеется большой набор атомарных операций над ними.

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

Если хорошо подумать, в большинстве веб-приложений, где используются реляционные БД (типа MySQL), их реляционность по большому счёту и не нужна. И их с большей эффективностью можно заменить на NoSQL-базы типа Redis’а. Особенно это касается высоконагруженных проектов, где требуется высокая скорость и масштабируемость (и нет недостатка в аппаратных ресурсах).

Относительно средних по размеру проектов — Redis может успешно дополнять тот же MySQL, забирая себе некоторые из его функций. Например, основные данных хранить в Redis, а индексы, выборки и сортировки оставить MySQL.

Итак: Перевод официальной документации по Redis на pyha-wiki.

Из наиболее интересного: