Tres tipos de datos especiales de Redis
- 1. Ubicación geoespacial
-
- 1. Introducción
- 2. Comandos de shell relacionados
-
- 2.1 Reglas
- 2.2 comando geoadd (asignar valor a la ciudad)
- 2.3 comando geopos (obtener la longitud y latitud de la ciudad especificada)
- 2.4 comando geodista (obtener la distancia entre dos ciudades)
- Comando 2.5 georadius (con una latitud y longitud dadas como centro, busque elementos dentro de un radio determinado)
- 2.6 georadiopormiembro
- 2.7 comando geohash
- 3. Presta atención
- Dos, almacenamiento base Hyperloglog
- Tres, almacenamiento de bits de 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