Conocimiento de los tres tipos de datos especiales de Redis (ubicación geográfica geoespacial, cardinalidad Hyperloglog, almacenamiento de bits en mapas de bits)

1. Ubicación geoespacial

1. Introducción

Un índice geoespacial de Redis permite almacenar coordenadas y buscarlas. Esta estructura de datos se puede utilizar para encontrar puntos vecinos dentro de un radio o cuadro delimitador determinado.

2. Comandos de shell relacionados

2.1 Reglas

Los dos niveles no se pueden agregar directamente. Generalmente, los datos de la ciudad se descargarán e importarán directamente a través del programa Java al mismo tiempo. Parámetros: valor
clave : latitud, longitud, nombre Longitud válida: -180 grados a 180 grados Latitud válida: - 85,05112878 grados a 85,05112878 grados


2.2 comando geoadd (asignar valor a la ciudad)

Asignar un valor a la ciudad (latitud y longitud)

geoadd china:city 经度 纬度 城市名

Por ejemplo

geoadd china:city 116.40 39.90 beijing

2.3 comando geopos (obtener la longitud y latitud de la ciudad especificada)

Obtener la ubicación actual (debe ser un valor de coordenadas real)

geopos china:city 城市名1 城市名2

Por ejemplo

geopos china:city beijing shanghai

2.4 comando geodista (obtener la distancia entre dos ciudades)

Calcula la distancia entre dos puntos
Unidad:
m significa que la unidad es metros
km significa que la unidad es kilómetros
mi significa que la unidad es millas
ft significa que la unidad es pies

geodist china:city 城市名1 城市名2 km

Por ejemplo,
compruebe la distancia en línea recta entre Shanghai y Beijing.

geodist china:city beijing shanghai km

Comando 2.5 georadius (con una latitud y longitud dadas como centro, busque elementos dentro de un radio determinado)

georadius china:city 经度 纬度 距离值 km

(1) Tome la longitud y latitud de 110 y 30 como centro, encuentre las ciudades dentro de un radio de 1000 km

georadius china:city 110 30 1000 km

(2) Muestra la posición de la distancia al centro (withdist)

georadius china:city 110 30 1000 km withdist

(3) Mostrar información de ubicación de otras personas (concoord)

georadius china:city 110 30 1000 km withcoord

(4) Filtrar los resultados en la ubicación especificada (con recuento de coordenadas 1)

georadius china:city 110 30 1000 km withcoord count 1

2.6 georadiopormiembro

Encuentra otros elementos alrededor del elemento especificado.

georadiusbymember china:city 城市名 1000 km

Por ejemplo

georadiusbymember china:city beijing 1000 km

2.7 comando geohash

Devuelve una cadena Geohash de 11 caracteres.
Convierte la latitud y longitud bidimensionales en una cadena unidimensional. Si las dos cadenas están más cerca, la distancia es más cercana.

geohash china:city 城市名

Por ejemplo

geohash china:city beijing

3. Presta atención

El principio de implementación subyacente de GEO es en realidad Zset. Podemos usar el comando Zset para operar geo
(1) Ver todos los elementos en el mapa.

zrange china:city 0 -1

(2) Eliminar el elemento especificado

zrem china:city beijing

Dos, almacenamiento base Hyperloglog

1.base

La cardinalidad se refiere a (elementos no repetidos) = 5, el error es aceptable.
Por ejemplo: A{1,3,5,7,8}

2. Introducción

Algoritmo de estadísticas de cardinalidad de Redis Hyperloglog
Ventajas: la memoria ocupada es fija y la tecnología de 2 ^ 64 elementos diferentes solo requiere 12 KB de memoria

3. Comandos de shell relacionados

3.1 Crear un conjunto de elementos

pfadd key值 a b c d e f g

Por ejemplo

pfadd mykey a b c d e f g

3.2 Cuente el número base de elementos mykey

pfcount key值

resultado

pfcount mykey

3.3 Fusionar dos conjuntos de datos

pfmerge key值3 key值1 key值2

Por ejemplo

pfmerge mykey3 mykey mykey2

4. Presta atención

Si se permite la tolerancia a fallas, se puede usar Hyperloglog, y
si no se permite la tolerancia a fallas, se pueden usar conjuntos u otros tipos de datos.

Tres, almacenamiento de bits de mapas de bits

1. Introducción

Información estadística del usuario, activo, inactivo! ¡Inicie sesión, no inicie sesión! Puede utilizar mapas de bits para perforar tarjetas, etc.
Los mapas de bits, las estructuras de datos, se registran manipulando bits binarios y solo hay dos estados de 0 y 1.
365 días = 365 bits 1 byte = 8 bits 46 bytes más o menos

2. Comandos de shell relacionados

2.1 Asignación al mapa de bits

setbit 对象 某个属性 对应含义

Por ejemplo, el lunes se
marca con 0
y se le asigna un valor de 1, lo que significa check-in, y se le asigna un valor de 0, lo que significa que no hay check-in.




setbit day 0 1
setbit day 1 0
setbit day 2 0
setbit day 3 1

2.2 Comprobar si realizar el check-in

getbit day 2

2.3 Cuente el número de días de check-in

bitcount day

Supongo que te gusta

Origin blog.csdn.net/qq_46106857/article/details/128307322
Recomendado
Clasificación