Я изучаю различные распределенные базы данных в памяти для использования в наших приложениях. Я столкнулся с одним сценарием и хочу знать, возможно ли это в Redis Cache и Apache Ignite Cache?
- Скажем, размер моего распределенного кеша в памяти составляет 15 ГБ
- Я использую разделение своих данных (например, в Redis - Redis Cluster и аналогичный способ в Ignite)
- Когда какой-либо узел в кластере достигает порогового уровня с точки зрения памяти, автоматически ли он распределяет данные по узлу в Redis? Распределяет ли он данные автоматически по узлам в Ignite? Когда политика выселения применяется как в Redis, так и в Ignite? Только после того, как все узлы дойдут до там объема памяти?
- Что, если один или несколько узлов выйдут из строя в кластере или в кластер добавятся новые узлы?
- А как насчет резервного копирования данных? (Я знаю концепцию Redis Sentinel для Redis)
Я ищу такой сценарий (доступен в Redis Cache?), Описанный в этой ссылке в разделе обзора https://apacheignite.readme.io/docs/distributed-persistent-store
Может ли ниже быть достигнутое в Redis Cache?
Допустим, у меня 100 записей. Кэш может содержать только 40 записей (наиболее часто используемых) и 100 записей в файле на диске (ни в одной другой базе данных).
- Итак, если запрашивается что-либо из этих 100 записей, мне никогда не придется обращаться к реальной базе данных (например, Sybase db)?
- Если ключ найден в 100 записях, но его нет в кеше в памяти (40 записей), тогда получите этот ключ, поместите в кеш в памяти и замените другой ключ, используя политику выселения, в файл на диске (но здесь, на диске, у меня есть 100 записи всегда)
- Если ключ отсутствует в кэше и файле на диске, нам нужно только перейти в базу данных (Sybase) и получить его.