Back to questions
Junior — Middle
64
Как были организованы и какие форматы использовались для хранения географических данных в Redis в вашем предыдущем проекте?
Companies where asked
Медиалогия
Answer from AI
sobes.tech AI
В Redis для хранения географических данных используется специальный тип данных — геопространственные индексы, реализованные через команды GEOADD, GEORADIUS, GEOPOS и другие.
Данные хранятся в виде координат (широта, долгота) с привязкой к ключу и имени объекта. Формат хранения — внутренний сжатый индекс, основанный на геохешах, что позволяет быстро выполнять запросы по радиусу или расстоянию.
Пример использования в C# с библиотекой StackExchange.Redis:
var redis = ConnectionMultiplexer.Connect("localhost");
var db = redis.GetDatabase();
// Добавление гео-точки
// GEOADD locations 13.361389 38.115556 "Palermo"
db.GeoAdd("locations", 13.361389, 38.115556, "Palermo");
// Поиск объектов в радиусе 100 км от точки
var nearby = db.GeoRadius("locations", 15, 37, 100, GeoUnit.Kilometers);
Таким образом, геоданные хранятся компактно и позволяют эффективно выполнять пространственные запросы.