Redis
Что это
Redis(Remote dictionary service) - сервер баз данных типа ключ-значение. Redis находится в оперативной памяти.
В основном используется для кэша. Он находится перед БД(MySql, Postgres etc).
Преимущества
- В сравнении с кешем который храниться на жестких дисках, redis хранит в RAM памяти.
- Множество типов данных.
- Использует только один thread.
Поддерживает типы данных:
- String
- Bitmap
- Bitfield
- Hash
- List
- Set
- Sorted Set
- Geospatial
- Hyperlog
- Stream
Варианты развёртывания Redis:
- Simple Database - единственный экземпляр.
- Redis HA - один главный Redis и второй подчиненный. Синхронизация - репликацией.
- Redis Sentinel - похож на HA, но подчиненных 2 и более. Также добавляются узлы Sentinel обеспечивающие:
мониторинг, управление администраторами, уведомления о происшествиях и установление узлов после них
- Redis Cluster - используется когда размер данных превышает размер оперативной памяти.
Способы взаимодействия
- Консоль - с помощью Redis команд.
- RedisInsight
Ключ - строка, по которой Redis находит значение.
Она может содержать любые символы, но обычно делают читаемую и структурированную.
namespace:тип:идентификатор:атрибут
namespace(Префикс) - app:, service:
Тип данных/сущность - user, order, product
Идентификатор(ID) - уникальный номер, UUID и т.д. user:123, session:ab12cd
Поле/атрибут - конкретное свойство (если храним в виде отдельных ключей). user:123:name, user:123:email
Синтаксис
Исторический стандарт - для разделения "логических групп ключей" через двоеточие":". Но можно использовать
точку"." или нижнее подчеркивание"_".