La verdadera pregunta y análisis de la entrevista de redis realizada por Tencent en 2021

Redis es simplemente una base de datos, pero a diferencia de las bases de datos tradicionales, los datos de redis se almacenan en la memoria, por lo que la velocidad de almacenamiento y escritura es muy rápida, por lo que redis se usa ampliamente en la dirección del caché. Además, redis se usa a menudo para bloqueos distribuidos. Redis proporciona una variedad de tipos de datos para admitir diferentes escenarios comerciales. Además, redis admite transacciones, persistencia, scripts LUA, eventos controlados por LRU y múltiples soluciones de clúster. Por lo tanto, a menudo podemos ver Redis en entrevistas. Hoy, les traeré una pregunta y un análisis reales de la entrevista Redis. Más adelante, compartiré algunas preguntas reales del examen regular de Redis este año.

Publicación de I + D en Java de Ant Financial: estructura de datos común de Redis y análisis de escenarios de uso

 

Entrevistador: Estructura de datos común de Redis y análisis de escenarios de uso

1. Cadena

Comandos comunes: set, get, decr, incr, mget, etc.

La estructura de datos String es un tipo de clave-valor simple, y el valor puede ser no solo una String, sino también un número. Aplicación de caché de valor clave convencional; Recuento convencional: el número de Weibo, el número de fans, etc.

2.Hash

Comandos comunes: hget, hset, hgetall, etc.

Hash es una tabla de mapeo entre el campo y el valor del tipo de cadena. Hash es especialmente adecuado para almacenar objetos. Durante las operaciones posteriores, puede modificar directamente solo el valor de un campo en este objeto. Por ejemplo, podemos almacenar información del usuario, información del producto, etc. en la estructura de datos Hash. Por ejemplo, a continuación, utilizo el tipo hash para almacenar parte de mi propia información:

Publicación de I + D en Java de Ant Financial: estructura de datos común de Redis y análisis de escenarios de uso

 

3.Lista

Comandos comunes: lpush, rpush, lpop, rpop, lrange, etc.

La lista es una lista enlazada. La lista de Redis tiene muchos escenarios de aplicación, y también es una de las estructuras de datos más importantes de Redis. Por ejemplo, la lista de seguimiento de Weibo, la lista de fans, la lista de mensajes y otras funciones se pueden implementar con la estructura de la lista de Redis.

La lista de Redis se implementa como una lista doblemente vinculada, que puede admitir la búsqueda inversa y el recorrido, que es más conveniente de operar, pero trae una sobrecarga de memoria adicional.

Además, puede usar el comando lrange, que es cuántos elementos leer de un elemento determinado, y puede implementar una consulta de paginación basada en la lista. Esta es una gran función, basada en redis para lograr una paginación simple de alto rendimiento, y puede hacer desplegables continuos como la paginación de Weibo (bajando una página a la vez), alto rendimiento.

4.Conjunto

Comandos comunes: sadd, spop, smembers, sunion, etc.

La función externa proporcionada por el conjunto es similar a la función de una lista. La característica especial es que el conjunto puede clasificar automáticamente los duplicados.

Cuando necesita almacenar una lista de datos y no desea datos duplicados, set es una buena opción y set proporciona una interfaz importante para juzgar si un miembro está en una colección de set, que tampoco se proporciona en la lista. Las operaciones de intersección, unión y diferencia se pueden realizar fácilmente según el conjunto.

Por ejemplo, en una aplicación Weibo, todos los seguidores de un usuario pueden almacenarse en una colección y todos sus fans pueden almacenarse en una colección. Redis puede implementar fácilmente funciones como atención común, ventiladores comunes y preferencias comunes. Este proceso es también el proceso de encontrar la intersección. Los comandos específicos son los siguientes:

Publicación de I + D en Java de Ant Financial: estructura de datos común de Redis y análisis de escenarios de uso

 

5.Conjunto clasificado

Comandos de uso común: zadd, zrange, zrem, zcard, etc.

En comparación con el conjunto, el conjunto ordenado agrega una puntuación de parámetro de peso, de modo que los elementos del conjunto se pueden ordenar de acuerdo con la puntuación.

Ejemplo:  en el sistema de transmisión en vivo, la información de clasificación en tiempo real incluye listas de usuarios en línea en la sala de transmisión en vivo, varias clasificaciones de obsequios, mensajes de bombardeo (se pueden entender como clasificaciones de mensajes según las dimensiones del mensaje) y otra información, adecuada para el almacenamiento usando la estructura SortedSet en Redis.

40 preguntas comunes de la entrevista de resdis (incluido el análisis)

  1. ¿Qué es Redis?
  2. ¿Tipo de datos de Redis?
  3. ¿Cuáles son los beneficios de usar Redis?
  4. ¿Cuáles son las ventajas de Redis sobre Memcached?
  5. ¿Cuáles son las diferencias entre Memcache y Redis?
  6. ¿Redis es de un solo proceso de un solo subproceso?
  7. ¿Cuál es la capacidad máxima que puede almacenar un valor de cadena?
  8. ¿Cuál es el mecanismo de persistencia de Redis? ¿Sus ventajas y desventajas?
  9. Problemas y soluciones de rendimiento comunes de Redis:
  10. ¿Redis caducó la estrategia de eliminación de claves?
  11. ¿Estrategia de reciclaje de Redis (estrategia de eliminación)?
  12. ¿Por qué edis necesita guardar todos los datos en la memoria?
  13. ¿Entiendes el mecanismo de sincronización de Redis?
  14. ¿Cuáles son los beneficios de la canalización, por qué utilizar la canalización?
  15. ¿Alguna vez ha utilizado el clúster de Redis? ¿Cuál es el principio del clúster?
  16. ¿En qué circunstancias la solución de clúster de Redis hará que todo el clúster no esté disponible?
  17. ¿Cuáles son los clientes Java compatibles con Redis? ¿Cuál es la recomendación oficial?
  18. ¿Cuáles son las ventajas y desventajas de Jedis y Redisson?
  19. ¿Cómo Redis establece la contraseña y verifica la contraseña?
  20. ¿Hablar sobre el concepto de tragamonedas hash de Redis?
  21. ¿Cuál es el modelo de replicación maestro-esclavo del clúster de Redis?
  22. ¿Se perderán operaciones de escritura en el clúster de Redis? ¿por qué?
  23. ¿Cómo es la replicación entre clústeres de Redis?
  24. ¿Cuál es la cantidad máxima de nodos en un clúster de Redis?
  25. ¿Cómo elegir una base de datos para el clúster de Redis?
  26. ¿Cómo probar la conectividad de Redis?
  27. ¿Cómo entender la transacción de Redis?
  28. ¿Cuáles son los comandos relacionados con las transacciones de Redis?
  29. ¿Cómo establecer el tiempo de vencimiento y la validez permanente de la clave de Redis?
  30. ¿Cómo optimiza Redis la memoria?
  31. ¿Cómo funciona el proceso de reciclaje de Redis?
  32. ¿Hay alguna forma de reducir el uso de memoria de Redis?
  33. ¿Qué sucede cuando Redis se queda sin memoria?
  34. ¿Cuántas claves puede almacenar una instancia de Redis como máximo? Lista, conjunto, conjunto ordenado, ¿cuántos elementos pueden almacenar como máximo?
  35. Hay datos de 2000w en MySQL y solo datos de 20w en redis. ¿Cómo asegurarse de que los datos en redis sean todos datos calientes?
  36. ¿Para qué escenario es más adecuado Redis?
  37. Suponga que hay 100 millones de claves en Redis, y 10w de ellas comienzan con un prefijo conocido fijo. ¿Qué pasa si puede encontrarlas todas?
  38. Si hay una gran cantidad de claves que deben configurarse para que caduquen al mismo tiempo, ¿qué se debe tener en cuenta en general?
  39. ¿Has usado Redis como una cola asincrónica? ¿Cómo lo usas?
  40. ¿Has utilizado bloqueos distribuidos de Redis? ¿De qué se trata?

Publicación de I + D en Java de Ant Financial: estructura de datos común de Redis y análisis de escenarios de uso

 

para resumir:

Debido a que el análisis es demasiado largo, no he enumerado todos los análisis para todos. Además de las 40 preguntas de la entrevista real de redis, hay 1000 preguntas de la entrevista real spring, mybatis, MySQL, dubbo, etc. Amigos que necesitan un análisis completo y miles de preguntas de entrevistas reales pueden prestarle atención. Después de elogiar este artículo, agregue el asistente vx: bjmsb10 para obtenerlo. Finalmente, ¡espero que pueda encontrar su oferta favorita en el nuevo año!

Supongo que te gusta

Origin blog.csdn.net/Java0258/article/details/112374682
Recomendado
Clasificación