Saltar al contenido

Cómo Solucionar Problemas en Redis

marzo 4, 2020

 

Introducción

Redis es un código abierto, almacén de datos clave-valor en memoria. Viene con varios comandos que pueden ayudar con la solución de problemas y la depuración de problemas. Debido a la naturaleza de Redis como un almacén de claves-valor en memoria, muchos de estos comandos se centran en la gestión de memoria, pero hay otros que son valiosos para proporcionar una visión general del estado de su servidor Redis. Este tutorial proporcionará detalles sobre cómo utilizar algunos de estos comandos para resolver problemas es posible que encuentre y cuando se utiliza Redis ayudar a diagnosticar y.

Cómo utilizar esta guía

Esta guía está escrita como una hoja de trucos con ejemplos autónomos. Le animamos a saltar a cualquier sección que es relevante para la tarea que está tratando de completar.

Los comandos mostrados en esta guía fueron probados en un 18,04 servidor Ubuntu corriendo Redis versión 4.0.9. Para configurar un entorno similar, puede seguir Paso 1 de nuestra guía sobre cómo instalar y Secure Redis en Ubuntu 18.04. Vamos a demostrar cómo se comportan estos comandos ejecutando con Redis-cli, la interfaz de línea de comandos Redis. Tenga en cuenta que si usted está utilizando una interfaz diferente Redis – Redli, por ejemplo – la salida exacta de ciertos comandos pueden ser diferentes.

Como alternativa, puede aprovisionar una base de datos gestionada ejemplo Redis para probar estos comandos, pero tenga en cuenta que, dependiendo del nivel de control que le indique su proveedor de base de datos, algunos comandos de esta guía puede no w o k como se describe. Para aprovisionar una base de datos digitalocean administrados, siga nuestra documentación del producto Gestionados bases de datos. Entonces, se debe ya sea instalar Redli o establecieron un túnel TLS en o der para conectarse a la base de datos gestionada a través de TLS. uso de la memoria Problemas

relacionados con la memoria

Solución de problemas le indica la cantidad de memoria actualmente está siendo utilizado por una sola tecla. Lleva el nombre de una clave como argumento y devuelve el número de bytes que se usa: el uso de memoria

memory usage key_meaningOfLife

  • key_meaningOfLife

Output(integer) 42

Para una comprensión más general de cómo su servidor Redis está utilizando la memoria, puede ejecutar las estadísticas de memoria comando: memoria

memory stats

  • estadísticas

Este comando da salida a una gran variedad de métricas relacionadas con la memoria y sus valores. Las siguientes son las métricas reportados por las estadísticas de memoria:

  • peak.allocated: El número máximo de bytes consumidos por Redis
  • total.allocated: El número total de bytes asignados por Redis
  • startup.allocated: El número inicial de bytes consumida por Redis en el arranque
  • replication.backlog: el tamaño de la cartera de replicación, en bytes clients.slaves
  • : el tamaño total de todos los gastos generales de réplicas (los buffers de salida y de consulta y contextos de conexión)
  • clients.normal: la tamaño total de todos los gastos generales del cliente
  • aof.buffer: el tamaño total de la corriente y volver a escribir sólo para adjuntar archivos de memoria intermedia db.0
  • : los gastos generales de los principales diccionarios y expiración para cada base de datos en uso en el servidor, publicado en bytes
  • overhead.total: la suma de todos los gastos generales se utilizan para administrar espacio de claves
  • keys.count de Redis: el número total de claves almacenadas en todas las bases de datos del servidor de
  • keys.bytes-per-clave : La relación de uso de la memoria neto del servidor y keys.count dataset.bytes
  • : El tamaño del conjunto de datos, en bytes
  • dataset.percentage: El porcentaje de uso de la memoria neto de Redis tomada por dataset.bytes
  • peak.percentage : el porcentaje de peak.allocated sacado de total.allocated fragmentación
  • : la relación de la cantidad de memoria actualmente en uso dividido por la memoria física Redis en realidad está utilizando

memoria malloc-estadísticas proporciona un estadísticas internas informe de jemalloc , el asignador de memoria utilizada por Redis en sistemas Linux:

memory malloc-stats

  • memoria malloc-stats

Si parece que se está ejecutando en temas relacionados con la memoria, pero analizando la salida de los comandos anteriores demuestra ser poco útil, se puede intentar ejecutar médico memoria:

memory doctor

  • memoria médico

Esta salida también disponible cualquier problema de consumo de memoria que puede encontrar y sugerir posibles soluti complementos.

Obtención de información general acerca de su Redis Instancia

Un comando de depuración que no está directamente relacionado con la gestión de memoria es monitor. Este comando le permite ver un flujo constante de todos los comandos procesados ​​por el servidor Redis: Monitor

monitor

OutputOK
1566157213.896437 [0 127.0.0.1:47740] "auth" "foobared"
1566157215.870306 [0 127.0.0.1:47740] "set" "key_1" "878"

Otro comando útil para la depuración es información, que devuelve varios bloques de información y estadísticas sobre el servidor:

info

    comando devuelve información

Output# Server
redis_version:4.0.9
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:9435c3c2879311f3
redis_mode:standalone
os:Linux 4.15.0-52-generic x86_64
. . .

de esto una gran cantidad de información. Si sólo desea ver un bloque de información, se puede especificar como un argumento a info:

info CPU

  • Información de la CPU

Output# CPU
used_cpu_sys:173.16
used_cpu_user:70.89
used_cpu_sys_children:0.01
used_cpu_user_children:0.04

Tenga en cuenta que la información devuelta por el comando info dependerá de la versión de Redis que está utilizando .

Utilizando las teclas Comando

El comando de teclas es útil en los casos en que se le ha olvidado el nombre de una tecla, o tal vez que haya creado un mal escritas, pero accidentalmente su nombre. llaves busca claves que responden a un patrón:

keys pattern

  • teclas patrón

las siguientes variables de tipo glob son compatibles

  • ? Es un pie comodín para cualquier carácter individual, por lo que es? mmy coincide con Sammy, Sommy y sqmmy
  • * es un comodín que representa cualquier número de caracteres, incluyendo ningún carácter en absoluto, por lo que sa * y coincide con Sammy, por ejemplo, sammmmmmy y salmony
  • se pueden especificar dos o más caracteres que el patrón puede incluir envolviéndolos en corchetes, por lo que s [ai] mmy coincidirá con Sammy y simmy, pero no SUMMY
  • Para establecer un comodín que prescinde de una o más letras , envolverlos en soportes y preceder a ellos con una zanahoria (^), por lo que s [^ oi] mmy coincidirán con Sammy y sxmmy, pero no Sommy o simmy
  • Para establecer un comodín que incluye una serie de cartas, separar el principio y extremo de la gama con un guión y se envuelve entre corchetes, por lo que es [ao] mmy coincidirá con Sammy, skmmy y Sommy, pero no srmmy

Advertencia: documentación el Redis advierte que las claves casi nunca se deben utilizar en un entorno de producción, ya que puede tener un gran impacto negativo en PE rformance.

Conclusión

Esta guía detalla una serie de comandos que son útiles para identificar y solucionar los problemas que uno puede encontrar a medida que trabajan con Redis. Si hay otros comandos relacionados, argumentos o procedimientos que le gustaría ver descrita en esta guía, por favor pregunte o hacer sugerencias en los comentarios a continuación.

Para obtener más información sobre los comandos Redis, ver nuestra serie de tutoriales sobre cómo gestionar una base de datos Redis.