Sobes.tech
Junior — Middle
81

Алдыңғы жобада Redis-те географиялық деректер қалай сақталды және қандай форматтар қолданылды?

Сұралған компаниялар
Медиалогия

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);

Таким образом, геоданные хранятся компактно и позволяют эффективно выполнять пространственные запросы.