Resumen de las preguntas de la entrevista de Java (9) - preguntas de la entrevista de Redis

Enlace original

 

Los programadores no solo están bajo presión en el trabajo, sino también durante el Año Nuevo. Los compañeros de clase tienen más miedo de que les pregunten sobre su salario. . . Fui a una entrevista antes de que terminara el Festival de Primavera, pero conocí ...

El entrevistador hizo esta serie de 12 preguntas potencialmente mortales, ¿quién puede soportarlo?Imagen

Entrevistador: Compañeros de clase, creo que usan Redis en todos los proyectos, ¿pueden decirme cómo usan Redis?

 

Classmate A: se utiliza principalmente para el almacenamiento en caché, sesiones distribuidas, lectura / estadísticas de conteo similares

 

Entrevistador: Bien, ¿cómo logra Redis la persistencia? 

 

Classmate A: bgsave realiza una persistencia completa de los archivos binarios RDB, aof hace una persistencia incremental y almacena datos de protocolo de texto.  

 

Entrevistador: ¿Cuáles son sus ventajas y desventajas?

 

Estudiante A: Los archivos binarios Rdb pueden iniciarse y cargarse más rápido, y aof necesita reproducir comandos, por lo que la velocidad es más lenta

 

Imagen

 

Entrevistador: Durante la persistencia de Redis, ¿el proceso principal aún puede proporcionar servicios externos?

 

Compañero A: Si

 

Entrevistador: ¿Cómo maneja Redis los datos recién escritos? ¿Estos datos se conservarán directamente? 

 

Compañero de clase A :. . . ¡Esto es posible!     

 

Entrevistador: Reids puede establecer el tamaño máximo de memoria. Si los datos alcanzan el límite máximo de memoria, ¿cómo lo maneja Redis?

 

Estudiante A: Puede configurar la estrategia de eliminación LRU o la estrategia de eliminación LFU.

 

Entrevistador: ¿Puede hablar sobre el principio de implementación del algoritmo LRU de Redis?

 

Estudiante A: Esto no está tan claro.

 

Imagen

 

Entrevistador: ¿Cuáles son los tipos de datos básicos de Redis?

 

Compañero de clase A: cadena, hash, lista, conjunto, zset.

 

Entrevistador: ¿Cómo se elige el tipo de cadena y el tipo de hash para almacenar datos?

 

Classmate A: string Para obtener ciertos datos en una gran cantidad de objetos de campo, es necesario obtener los datos generales, y la deserialización se completa en el lado del cliente, y el hash puede obtener el campo especificado para obtener los datos. Así que elige según las necesidades de acceso.

 

Entrevistador: ¿Hay otras consideraciones? 

 

Compañero A: No

 

Entrevistador: ¿Ha comprendido el principio de implementación subyacente de zset?

 

Estudiante A: ¡Parece que se realiza saltando el reloj!

 

Entrevistador: ¿Puede hablarnos sobre su principio de implementación y el análisis de la complejidad del tiempo?

 

Estudiante A: Esto no está tan claro. 

 

Imagen

 

Entrevistador: ¿Puede hablar sobre la penetración de caché?

 

Estudiante A: Los datos que se van a consultar no existen en el caché y llegan directamente a la base de datos, si hay muchas solicitudes de este tipo, todas penetran en la base de datos, lo que provocará que la base de datos se bloquee.

 

Entrevistador: ¿Qué pasa con la solución?

 

Estudiante A: Puede usar un filtro Bloom para bloquearlo.

 

Entrevistador: ¿Cuál es el principio de realización del filtro Bloom? ¿Puedes decirme algo?

 

Estudiante A: Esto no está tan claro.

 

Entrevistador: Muy bien, gracias por participar en la entrevista de nuestra empresa. Vayamos aquí primero hoy.

 

Imagen

¿Por qué siempre encuentro problemas con Redis en las entrevistas? Redis tiene una comprensión clara de los principios de diseño subyacentes, pero ¿no puedo simplemente decirlo? ¿Qué puedo hacer si encuentro estas preguntas de la entrevista de Redis en el futuro? ¡Solo piensa en ello!

Contenido del curso de análisis de código fuente y diseño de arquitectura de alta concurrencia de Redis:

Sección 1: Sistema Double Eleven Seckill Backend Redis Arquitectura de alta concurrencia Combate real

1. Reproduzca el combate real de errores de sobreventa en escenarios de alta concurrencia

2. Bloqueos prácticos a nivel de JVM y bloqueos distribuidos en el escenario de picos

3. El combate real del marco Redisson de esclusas distribuidas.

4. Analice Lua del código fuente de Redisson para resolver el problema de atomicidad de las cerraduras

5. Problema de falla de bloqueo de la arquitectura maestro-esclavo de Redis y explicación detallada de Redlock

6. Cómo aumentar 100 veces el rendimiento de las cerraduras distribuidas durante la promoción Double Eleven

7. Utilice la arquitectura del clúster de caché de Redis para resistir el doble de los once picos de tráfico principales.

8. Analizar las similitudes y diferencias de la arquitectura de bloqueo de Redis y Zookeeper desde la perspectiva de CAP

9. La solución definitiva a la inconsistencia entre la caché de Redis y la doble escritura de la base de datos.

 

Sección 2: 100 millones de tráfico Sina Weibo y WeChat Redis Architecture Combat

1. Estructura de almacenamiento de datos principal de Redis

2. Explicación detallada de la codificación de cadenas subyacente de Redis int & embstr & raw

3. Explicación detallada de la lista de compresión inferior de Redis y la tabla de salto y la tabla hash

4. Cómo elegir la lista comprimida y la tabla de salto implementada por ZSet en la parte inferior de Redis

5. Implementación del flujo de mensajes de Weibo y WeChat Redis

6. Los me gusta, las colecciones y las etiquetas de WeChat se implementan en función de Redis.

7. Los amigos de Weibo y WeChat siguen un modelo basado en la implementación de Redis

8. Las personas cercanas a Weibo se basan en Redis.

9. Cómo implementar el carrito de compras de comercio electrónico con Redis

10. Cómo implementar un sistema de recomendación de comercio electrónico con Redis

 

Sección 3: profundice en el código fuente C subyacente para explicar la estructura de datos de alto rendimiento de Redis

1. Presentación de la estructura de datos principal de Redis

2. Estadísticas diarias en vivo de mil millones de usuarios de nivel de combate real de BitMap

3. Análisis del principio de implementación subyacente de la cola de bloqueo de Redis

4. Cómo implementar una cola de retraso de alto rendimiento

5. Encuentra personas cercanas según Geohash

6. Análisis en profundidad del análisis del código fuente C de la implementación de la tabla de salto inferior de ZSet

7. Análisis en profundidad del código fuente C del diseño de la estructura de datos centrales de Redis

8, Redis 6.0 multiproceso en comparación con la optimización de un solo subproceso

 

 

Supongo que te gusta

Origin blog.csdn.net/lsx2017/article/details/114040015
Recomendado
Clasificación