Redis géodiste

Redis géodiste
Redis commence à prendre en charge les types de données géospatiales de la version 3.2.0. C'est l'une des fonctionnalités uniques que Redis propose dans les autres magasins de données. La structure des données géospatiales peut contenir des coordonnées d'un emplacement donné. Avec le riche ensemble d'opérations, il est possible d'interroger les emplacements et leurs coordonnées en fonction de différents critères.

Chaque membre est poussé dans un ensemble trié Redis référencé par une clé qui vous permet de demander efficacement ces éléments géospatiaux et de manière ordonnée. L'un des meilleurs usages de cette structure de données est que vous pouvez facilement interroger la distance entre deux géo-locations (membres) en utilisant la commande géodiste introduite par Redis. Ce sera un guide détaillé sur la commande géodiste, la syntaxe et ses cas d'utilisation.

Calcul de distance

Redis utilise la formule mathématique Haversine pour calculer les distances pour les indices géospatiaux qui suppose que la Terre est une sphère parfaite. Nous savons tous que la terre n'est pas une sphère parfaite. Donc, un 0.Une erreur de 5% peut être introduite par le calcul de la distance. Cela peut être ignoré pour des applications telles que les médias sociaux, les chercheurs de lieux à proximité, et etc. Mais pour les applications critiques d'erreur, cela devrait être utilisé avec soin.

La commande géodiste

La commande géodiste est utilisée pour calculer la distance entre deux membres stockés à une clé géospatiale donnée. Cette commande accepte deux paramètres de membre obligatoires et une clé géospatiale (index) qui pointe vers un ensemble trié. La distance est retournée en mètres (m). Éventuellement, vous pouvez également spécifier l'unité. Il soutient aussi les kilomètres, les kilomètres et les pieds.

La syntaxe de la commande géodiste est la suivante:

Geodist Geospatial_Index / Key Member_1 membre_2 [M | Km | Ft | MI]

Il renvoie la distance en double valeur. La valeur dépend de l'unité que vous avez spécifiée. Chaque fois que la commande rencontre des membres inexistants ou manquants, il renvoie nul.

Cas d'utilisation - Obtenez la distance entre deux attractions

Supposons qu'une entreprise de tourisme a introduit une application mobile pour trouver les détails des attractions dans un pays donné. L'application mobile utilise le magasin de données Redis dans son backend pour stocker les détails des attractions, y compris leurs coordonnées géospatiales.

Ils ont utilisé les hachages Redis pour stocker les informations de base liées aux attractions. Pour la partie de coordonnées de géolocalisation, ils utilisent la structure de données géospatiales redis.

Créons un nouvel indice géospatial qui contient deux membres.

Attractions Geoadd: Newyork 23.596920 67.104923 "Lazy Mountain" 134.694013 45.394022 "River Sabra"

Maintenant le "montagne paresseuse" et "rivière Sabra«Les membres doivent être stockés dans un ensemble trié qui est référencé par la clé Attractions: newyork.

Utilisons la commande géodiste pour calculer la distance entre les deux membres ci-dessus. Par défaut, il doit renvoyer la distance en mètres.

Attractions géodistes: Newyork "Lazy Mountain" "Sabra River"

Comme vous pouvez le voir, nous avons spécifié l'indice géospatial comme Attractions: newyork. Ensuite, nous avons les deux membres comme des cordes.

Comme prévu, la sortie est retournée en mètres. Le type de données double a été utilisé pour représenter la distance.

Récupérer la distance en kilomètres

Il est également possible de récupérer la distance ci-dessus en kilomètres. Vous avez juste besoin de passer l'argument facultatif 'km' comme suit:

Attractions géodistes: Newyork "Lazy Mountain" "Sabra River" KM

Sortir

Récupérer la distance en miles

L'argument «Mi» doit être spécifié pour calculer la distance entre les membres donnés en miles.

Attractions géodistes: Newyork "Lazy Mountain" "Sabra River" Mi

Sortir

Récupérer la distance en pieds

Chaque fois que vous avez besoin de connaître le nombre de pieds d'un membre à un autre, spécifiez simplement l'unité comme 'ft'.

Attractions géodistes: Newyork "Lazy Mountain" "Sabra River" ft

Sortir

Chaque fois que vous spécifiez des membres inexistants, la commande géodiste doit retourner nul. Spécions deux membres inexistants comme suit:

Attractions géodistes: newyork "paresseux" "sabra"

Sortir

Si la clé spécifiée n'existe pas, la commande renvoie null.

Attractions géodistes: Washington "Lazy Mountain" "Sabra River" ft

Dans l'exemple ci-dessus, le Attractions: Washington La clé n'est pas disponible. Ainsi, la sortie est nulle comme indiqué dans ce qui suit:

Conclusion

En résumé, le type de données géospatial redis a été introduit pour contenir des coordonnées de géo-locations. Comme mentionné, les valeurs de longitude et de latitude sont stockées pour un membre donné. Ceci est représenté comme un ensemble trié dans la mémoire. Plusieurs commandes sont disponibles pour fonctionner sur des types de données géospatiales. Le géodiste est l'une des commandes utiles qui fonctionnent sur des index géospatiaux pour renvoyer la distance entre les membres spécifiés. Comme discuté dans la section Introduction, la distance est retournée en mètres par défaut. La commande géodiste accepte des arguments facultatifs pour retourner la distance dans d'autres unités ainsi que des kilomètres, des pieds et des miles.