4. Что такое Redis?
Redis это key-value хранилище с
открытым кодом. Работает с
5 основными типами данных:
Строки
Списки
Множества
Упорядоченные множества
Хэши
5. Что такое Redis?
NoSQL
Работает в оперативной памяти
1 поток
Очень быстрый (~100,000 queries / sec)
Маленький footprint в памяти (30k lines)
Асинхронный backup на диск
Написан на ANSI C под Linux
7. Fork-и, и прочие Linux API
int rdbSaveBackground(char *filename) {
pid_t childpid;
...
if ((childpid = fork()) == 0) {
int retval;
/* Child */
...
} else {
/* Parent */
8. Как запускать Redis на Azure
Startup task
Cygwin
Win32 port (проблемы с производительностью)
Клиенты Redis на .Net
ServiceStack.Redis (ребята из Mono)
BookSleave (Stack Overflow)
10. Сценарии использования
Выгодно для большого (> 30 запросов/сек)
количества запросов:
Счетчики (Простые и уникальные)
Рейтинги
Очереди
Publish/Subscribe
Опциональный TTL на каждый ключ – Можно
использовать как кэш
20. Проблемы и ограничения
Память на узле может кончиться: политики
поведения
Disk persistence
RDB-формат
AOF (append-only fashion)
Пока не все фичи для маштабирования работают из
коробки. Redis cluster не готов даже для Linux.
21. Поддержка Microsoft
Microsoft Open Technologies (Interoperability
@ Microsoft)
Адаптирование проекта под Win32
Избавление от специфики fork-ов в резервном копировании
Адаптирование для Windows Azure – обещают
22. Краткое сравнение
SQL Redis
Скорость Скорость
Сотни/тысячи запросов в сек Десятки тысяч запросов в сек
ACID BASE
Atomicity, Consistency, Isolation, Basically Available, Soft state, Eventual
Durability consistency
SQL синтаксис Ограниченный набор команд
Поддержка транзакций Поддержка транзакций
Репликация Репликация
Требует lock-ов на кластер, чтобы Благодаря работе в памяти на
не утратить целостность. Долго. порядки быстрее репликации SQL
23. Полезные материалы
Little Redis Book: http://tinyurl.com/cgm2zd3
Project Home: http://redis.io/
Redis Github: https://github.com/antirez/redis