Conceptos básicos y tipos de datos de Redis

Que es Redis

  • Redis (servidor de diccionario remoto): servicio de diccionario remoto
  • Es una base de datos de valor-clave de tipo registro de código abierto que está escrita en lenguaje C, es compatible con la red, se puede basar en la memoria y se puede conservar, y proporciona API en varios idiomas.
  • Una de las tecnologías NoSQL más populares en este momento, también conocida como base de datos estructurada

¿Qué puede hacer Redis?

  • Almacenamiento y persistencia de la memoria (la memoria se pierde cuando la energía está apagada, por lo que la persistencia es muy importante)
  • Alta eficiencia, se puede utilizar para caché
  • Sistema de publicación y suscripción
  • Análisis de información de mapas
  • Temporizadores, contadores, páginas vistas

Características de Redis

  • Varios tipos de datos
  • Puede ser persistente
  • Función de transacción
  • Puede hacer clúster

Instalar bajo Windows

  1. descargar
  2. Descomprima en su propio directorio de entorno
  3. Ejecute en el directorio del entorno: redis-server.exe redis.windows.conf
  4. Ingrese redis-cli.exe, ingrese ping, pruebe la conexión

Instalar bajo Linux

  1. Descargue el paquete comprimido: wget http://download.redis.io/releases/redis-5.0.8.tar.gz
  2. Descomprima en la ruta opt: tar -zxvf redis-5.0.8.tar.gz
  3. Instalar gcc: yum instalar gcc-c ++
  4. cd /redis-5.0.8 -> hacer
  5. hacer la instalación
  6. Linux se instalará en / usr / local / bin de forma predeterminada

Configuración de Redis en Linux

  1. Cree un directorio para guardar sus propios archivos de configuración en / usr / local / bin: mkdir myconfig
  2. Copie el archivo de configuración de Redis: cp /opt/redis-5.0.8/redis.conf myconfig
  3. File monize no change monize sí , así que después de Taiwán forma de comenzar

Inicie Redis en Linux

  • Ejecute en / usr / local / bin: redis-server myconfig / redis.conf inicie Redis
  • Ejecute en / usr / local / bin: redis-cli -h host -p port -a contraseña para ingresar al cliente Redis
  • El cliente ejecuta el apagado y luego sale, cierra Redis y sale del cliente

Punto de referencia de Redis

Herramienta oficial de prueba de rendimiento

  • Prueba: 100 conexiones simultáneas 100000 solicitudes

    Ejecute en / usr / local / bin: redis-benchmark -h localhost -p 6379 -c 100 -n 100000

Comandos básicos de Redis

Los siguientes comandos se ejecutan bajo el cliente Redis

  • Redis tiene 16 bases de datos de forma predeterminada, el número 0-15 y el número 0 se usa de forma predeterminada

    comando seleccionar n (seleccionar 3): cambiar la base de datos

  • Comando dbsize: ver el tamaño actual de la base de datos

  • claves * Comando: Ver todas las claves de la base de datos actual

  • set key_name key_value: agrega una clave a la base de datos actual

  • Comando flushdb: borrar la base de datos actual

  • flushall: vaciar todas las bases de datos

  • existe key_name: Si la clave existe, devuelve 1, de lo contrario, devuelve 0

  • mave key_name: eliminar la clave de destino

  • expire key_name num (números arábigos): establezca el tiempo de vencimiento de la clave de destino

  • ttl key_name: Ver el tiempo restante de la clave de destino

  • type key_name: Ver el tipo de clave de destino

Tipo de datos de Redis

Cinco tipos de datos básicos

  • Cuerda

    Escenario de uso : el valor del tipo de cadena puede ser un número además de una cadena; se puede usar para implementar contadores, contar el número de unidades, caché de objetos y caché de página web

    Comandos de uso común:

    • agregar valor de key_name: agregar contenido a la clave de destino, si la clave no existe, es equivalente a agregar una clave
    • strlen key_name: muestra la longitud del valor correspondiente a la clave de destino
    • incr key_name: valor clave de destino +1, que se puede usar para realizar datos en tiempo real del sitio web, como el volumen de lectura (cuando el valor clave es un número, el fondo de Redis lo convertirá automáticamente a Integer antes de operar)
    • decr key_name: valor de clave de destino -1
    • incrby / decrby key_name num (números arábigos): aumenta / disminuye el valor especificado
    • getrange key_name num1 num2: Obtiene el rango de cadenas
    • setrange key_name num xx: modifica el valor de la cadena de num a xx
    • mset k1 v1 k2 v2 k3 v3: establecer varias claves a la vez
    • mget k1 k2 k3: obtén varios valores a la vez
      • Mset y mget son operaciones atómicas, todas tienen éxito o fallan
    • setex key_name num key_value: crea la clave de destino y establece el tiempo de caducidad
    • setnx key_name key_value: Si esta clave no existe, cree la clave de destino
    • establecer usuario: 1 {nombre: waston, edad: 3}: establecer un valor de objeto usuario: 1 como una cadena json
    • set item: {id}: value: como set book: 3: views, el número de páginas vistas del Libro 3
    • getset key_name value: obtenga primero la clave de destino y luego establezca el valor en la clave de destino
    • lset list_name index value: coloque un valor en el subíndice especificado de la lista de destino, ¡la lista y el subíndice deben existir!
  • Lista

    En Redis, la estructura de datos subyacente de la lista es una lista vinculada, que se puede usar como una pila, cola o cola de bloqueo.

    ** Escenario de uso: ** Cola de mensajes

    Comandos de uso común:

    list_name todavía se almacena como una clave en Redis

    • lpush list_name value: agrega valor a la izquierda (encabezado) de la lista de destino
    • rpush list_name value: agrega valor a la derecha (cola) de la lista de destino
    • lrange list_name num1 num2: ver los valores en la lista de destino; lrange list_name 0 -1: ver todos
    • lpop list_name: la lista de destino muestra un valor a la izquierda (encabezado)
    • rpop list_name: la lista de destino muestra un valor a la derecha (cola)
    • lindex list_name num (comenzando desde 0): Obtiene el valor num + 1 de la izquierda de la lista de destino
    • llen list_name: Obtiene la longitud de la lista
    • lrem list_name value: elimina todos los valores de la lista de destino
    • lrem list_name valor num: elimina los valores num de la lista de destino, de izquierda a derecha
    • ltrim list_name num1 num2: intercepta la lista de destino; conserva el valor de num1 a num2
    • rpoplpush a_list b_list: Extrae un valor del lado derecho de a_list y colócalo en b_list
    • linsert list_name antes / después de value1 value2: agrega value2 a la izquierda / derecha de value1 en la lista de destino
  • Colocar

    Los valores de Set no se pueden repetir

    ** Escenario de uso: ** Visualización de atributos comunes como preocupaciones comunes y pasatiempos comunes entre los usuarios; recomendado por amigos

    Comandos de uso común:

    • valor sadd set_name: agrega un elemento al conjunto de destino
    • smembers set_name: Ver los elementos en el conjunto de destino
    • sismember set_name value: determina si el valor está en el conjunto de destino (1: existe 0: no existe)
    • scard set_name: el número de elementos en el conjunto de destino
    • srem set_name value: elimina el elemento de valor en el conjunto de destino
    • srandmember set_name (num): saca aleatoriamente un (num) elemento del conjunto de destino
    • spop set_name: saca aleatoriamente un elemento del conjunto de destino
    • smove set1 set2 value: Mueva el valor de set1 a set2
    • sdiff set1 set2: elementos de retorno en set1 pero no en set2
    • sinter set1 set2: Devuelve los elementos de propiedad conjunta de set1 y set2
    • sunion set1 set2: devuelve todos los elementos en set1 y set2, solo se devuelve uno del mismo elemento
  • Picadillo

    Colección de mapas, mapa de claves; la esencia no es muy diferente del tipo de cadena, el valor de la cadena se convierte en el valor clave

    Hash es más adecuado para el almacenamiento de objetos, la cadena es más adecuada para el almacenamiento general de cadenas

    ** Escenario de uso: ** Usa un hash para almacenar una serie de información de un usuario

    Comandos de uso común:

    • hset hash_name key_name valor: crea un hash
    • hget hash_name key_name: Obtiene el valor correspondiente a la clave de destino en el hash de destino
    • hmset hash_name k1 v1 k2 v2: crea varios valores
    • hmget hash_name k1 k2: Obtiene varios valores
    • hdel hash_name key_name: elimina la clave de destino y el valor correspondiente en el hash de destino
    • hlen hash_name: ver cuántas claves hay en el hash de destino
    • hexists hash_name key_name: determina si la clave de destino existe en el hash de destino
    • hkeys hash_name: Ver todas las claves en el hash de destino
    • hvals hash_name: Ver todos los valores en el hash de destino
    • hincrby hash_name key_name 1 / -1: hace que el valor de la clave de destino sea +1 o -1
    • hsetnx hash_name key_name valor: crear cuando la clave de destino no existe
  • Zset

    Conjunto ordenado

    Se agrega un valor al conjunto para ordenar

    ** Escenario de uso: ** Tabla de clasificación, ponderación de datos

    Comandos de uso común:

    • zadd set_name score value: crea un zset objetivo y agrega una puntuación de valor
    • zadd set_name n1 v1 n2 v2: crear múltiples, por ejemplo: zadd salario 100 sam 200 kim
    • zrangebyscore set_name -inf + inf: el zset de destino se emite en orden ascendente según la puntuación, el rango es de -inf a + inf, lo que significa que el infinito positivo o negativo es el rango completo
    • zrevrange set_name + inf -inf: salida en orden descendente
    • zrangebyscore set_name -inf + inf withscores: ordena la salida con puntuación
    • zrem set_name value: elimina el elemento especificado en el zset de destino
    • zcard set_name: Obtiene el número de elementos en zset
    • zcount set_name num1 num2: Obtiene el número de elementos entre num1 y num2

Tres tipos especiales

  • geoespacial

    Ubicación geográfica; la capa inferior está implementada por zset

    ** Escenario de uso: ** Ubicación, personas cercanas, cálculo de distancia

    Comandos de uso común:

    1. Agregar ubicación geográfica: geoadd key_name longitud (longitud) latitud (latitud) place_name (por ejemplo: geoadd china: ciudad 116.40 39.90 beijing)

      Por lo general, descargue los datos geográficos de la ciudad e impórtelos de una vez mediante el programa Java

    2. Obtenga los datos de latitud y longitud del punto inferior objetivo: geopos key_name place_name1 place_name2 (uno o más)

    3. Devuelve la distancia entre dos lugares: geodist key_name place1 place2 unit

      unidad es la unidad, puede ser km m mi ft

    4. Con la latitud y la longitud dadas como centro, busque los elementos dentro de un cierto radio: georadius key_name longitud (longitud del centro) latitud (latitud del centro) radio (radio) unidad (unidad) xxx (parámetros adicionales)

      El parámetro adicional es withdist, la distancia en línea recta se agrega al resultado; concoord, se agrega la latitud y longitud; count num, el número de resultados es limitado

    5. La consulta se centra en la ubicación especificada y los elementos dentro del rango especificado: georadiusbymember key_name nombre_del_lugar unidad de radio

    6. Devuelve la latitud y la longitud del lugar especificado en formato de cadena: geohash china: city place_name

    7. Eliminar ubicación de destino: zrem key_name place_name

    8. Todos los comandos relacionados con zset se pueden utilizar directamente ...

  • Hyperloglog

    Una estructura de datos para estadísticas cardinales

    Cardinalidad , es decir, el número de elementos restantes en una matriz después de eliminar elementos duplicados; como {1,3,5,5,7} después de la deduplicación {1,3,5,7}, la base es 4

    ** Escenario de uso: ** Registre el UV de la página web (una persona visita varias veces, presione una vez), contando las estadísticas

    Comandos de uso común:

    1. Cree un Hyperloglog: pfadd key_name value1 value2…
    2. Ver el número de elementos en el Hyperloglog especificado: pfcount key_name
    3. Fusionar Hyperloglog (unión): pfmerge key_name key1 key2
  • Mapa de bits

    Mapa de bits, se puede considerar como una matriz

    ** Escenario de aplicación: ** Solo hay dos estadísticas, 0 significa una situación, 1 significa otra situación. Tales como: iniciar sesión, registrarse

    Comandos de uso común:

    1. Establezca el valor en el índice de destino del mapa de bits de destino: setbit map_name index 0/1
    2. Obtenga el valor del índice de destino del mapa de bits de destino: índice getbit map_name
    3. Cuente el número de elementos con un valor de 1 en el mapa de bits de destino: bitcount map_name

Supongo que te gusta

Origin blog.csdn.net/WuLex/article/details/113531711
Recomendado
Clasificación