Синхронизировать данные в конфигурации Redis Multi Masters
Я новичок в Redis, и мне было интересно, может ли кто-нибудь помочь мне понять, может ли это быть правильным инструментом. Это мой сценарий:
У меня есть много разных узлов, каждый из которых ведет себя как мастер и принимает подключения клиентов для чтения и записи нескольких географических данных и отметки времени входящей записи. Каждый главный узел может быть размещен на дроне, который только случайно связывается и может общаться с другими, в зависимости от условий сети; когда это происходит, они должны синхронизировать свои данные в соответствии с их возрастом (только те, которые были более поздними, чем указанное время).
Есть ли способ добиться этого с помощью Redis или мне нужно реализовать эту функцию на уровне приложения? Я безуспешно пытался настроить master/slave, и мне было интересно, может ли Redis Cluster удовлетворить мои потребности.
Я погуглил, но то, что я нашел, не дало мне хорошего ответа
https://serverfault.com/questions/717406/redis-multi-master-replication
Использование Redis Replication на разных компьютерах (мультимастер)
1 ответ
Тео, по сути, Redis не имеет мульти мастер мастер репликации.
И кластер осколок это данные через разные экземпляры. Скажем, у вас есть только два экземпляра Redis. Instance1 примет сохранение и получение данных instance1 и instance2. Но он будет запрашивать и хранить в instance2 каждый ключ, который не принадлежит его осколку.
Я думаю, это не то, что вы хотите. Вы можете попробовать PostgreSQL+BDR, поскольку PostgreSQL поддерживает хранилище nosql, а BDR обеспечивает настоящую мастер-репликацию мастера ( https://wiki.postgresql.org/wiki/BDR_Project), если это действительно то, что вам нужно.
Я работаю как сегодня, так и с MongoDB. У каждого с другой целью. Redis обеспечит меньшую нагрузку и использование памяти, быстрое соединение и быструю репликацию. Но он не обеспечит мультимастер (если он вам действительно нужен).