tutorial que para necesito instalar español conectarme redis

que - ¿Cuál es el punto de múltiples bases de datos Redis?



que necesito para instalar redis (6)

  1. Realmente no conozco ningún beneficio de tener múltiples bases de datos en una sola instancia. Supongo que es útil si varios servicios usan los mismos servidores de bases de datos, por lo que puede evitar colisiones de claves.

  2. No recomendaría construir usando el comando KEYS , ya que es O (n) y no se escala bien. ¿Para qué lo estás utilizando para que puedas lograrlo de otra manera? Tal vez Redis no sea la mejor opción para ti si la funcionalidad como KEYS es vital.

  3. Creo que mencionan los beneficios de un único servidor de subprocesos en sus preguntas frecuentes, pero lo principal es la simplicidad: no tiene que preocuparse por la concurrencia de ninguna manera real. Cada acción es bloqueante, por lo que no hay dos cosas que puedan alterar la base de datos al mismo tiempo. Lo ideal sería tener una (o más) instancias por núcleo de cada servidor, y usar un algoritmo de hash consistente (o un proxy) para dividir las claves entre ellos. Por supuesto, perderá algunas funcionalidades: las tuberías solo funcionarán para las cosas en el mismo servidor, las clases se volverán más difíciles, etc.

Por lo tanto, he llegado a un lugar en el que quería segmentar los datos que almaceno en redis en bases de datos separadas ya que a veces necesito utilizar el comando de teclas en un tipo específico de datos, y quería separarlo para hacerlo más rápido. .

Si segmento en múltiples bases de datos, todo sigue siendo de un solo hilo, y todavía solo puedo usar un núcleo. Si acabo de lanzar otra instancia de Redis en el mismo cuadro, puedo usar un núcleo adicional. Además de eso, no puedo nombrar las bases de datos de Redis ni darles ningún tipo de identificador más lógico. Entonces, con todo lo dicho, ¿por qué / cuándo alguna vez querría usar múltiples bases de datos Redis en lugar de simplemente crear una instancia adicional de Redis para cada base de datos adicional que quiero? Y relacionado, ¿por qué Redis no intenta utilizar un núcleo adicional para cada base de datos adicional que agrego? ¿Cuál es la ventaja de tener un único hilo en las bases de datos?


En principio, las bases de datos de Redis en la misma instancia no son diferentes de los esquemas en las instancias de bases de datos RDBMS.

Entonces, con todo lo dicho, ¿por qué / cuándo alguna vez querría usar múltiples bases de datos Redis en lugar de simplemente crear una instancia adicional de Redis para cada base de datos adicional que quiero?

Hay una clara ventaja de usar bases de datos redis en la misma instancia de redis, y eso es administración. Si activa una instancia diferente para cada aplicación, y digamos que tiene 3 aplicaciones, eso es 3 instancias de redis separadas, cada una de las cuales probablemente necesitará un esclavo para HA en producción, por lo que son 6 instancias totales. Desde el punto de vista de la administración, esto se complica demasiado rápido porque necesita monitorear todos ellos, realizar actualizaciones / parches, etc. Si no planea sobrecargar redis con alta E / S, una sola instancia con un esclavo es más simple y más fácil de administrar siempre que cumpla con su SLA.


Estoy usando redis para implementar una lista negra de direcciones de correo electrónico, y tengo diferentes valores de TTL para diferentes niveles de listas negras, por lo que tener diferentes bases de datos en la misma instancia me ayuda mucho.


Incluso Salvatore Sanfilippo (creador de Redis) cree que es una mala idea usar múltiples bases de datos en Redis. Vea su comentario aquí:

https://groups.google.com/d/topic/redis-db/vS5wX8X4Cjg/discussion

Entiendo cómo esto puede ser útil, pero desafortunadamente considero que los múltiples errores de bases de datos de Redis son mi peor decisión en el diseño de Redis ... sin ningún tipo de ganancia real, hace que las funciones internas sean mucho más complejas. La realidad es que las bases de datos no se escalan bien por varias razones, como el vencimiento activo de las claves y VM. Si la selección de DB se puede realizar con una cadena, puedo ver que esta característica se utiliza como una capa de diccionario O (1) escalable, que en cambio no lo es.

Con los números DB, con un valor predeterminado de unos pocos DB, estamos mejor comunicados sobre qué es esta característica y cómo puedo usarla, creo. Espero que en algún momento podamos retirar el soporte de múltiples DBs, pero creo que es demasiado tarde ya que hay una cantidad de personas que confían en esta característica para su trabajo.


Las bases de datos de Redis se pueden utilizar en los raros casos de implementación de una nueva versión de la aplicación, donde la nueva versión requiere trabajar con diferentes entidades.


No desea usar múltiples bases de datos en una sola instancia de redis. Está en desuso y, como ha notado, varias instancias le permiten aprovechar múltiples núcleos. Si utiliza la selección de la base de datos, tendrá que refactorizar al actualizar. Monitorear y administrar instancias múltiples no es difícil ni doloroso.

De hecho, obtendrías mejores métricas en cada db por segregación según la instancia. Cada instancia tendría estadísticas que reflejaran ese segmento de datos, lo que puede permitir una mejor sintonía y una monitorización más receptiva y precisa. Utiliza una versión reciente y separa tus datos por instancia.

Como dijo Jonaton, no use el comando de teclas. Encontrarás un rendimiento mucho mejor si simplemente creas un índice clave. Cuando agregue una clave, agregue el nombre de la clave a un conjunto. El comando de teclas no es muy útil una vez que se amplía, ya que tomará un tiempo significativo para regresar.

Deje que el patrón de acceso determine cómo estructurar sus datos en lugar de almacenarlos de la manera en que cree que funcionan y luego analice cómo acceder y picarlos más tarde. Verá un rendimiento mucho mejor y encontrará que el código de consumo de datos a menudo es mucho más limpio y simple.

Con respecto a un solo hilo, considere que redis está diseñado para velocidad y atomicidad. Las acciones seguras que modifican datos en un db no necesitan esperar en otro db, pero ¿qué ocurre si esa acción se guarda en el archivo de volcado o procesa transacciones en esclavos? En ese punto, empiezas a meterte en las malas hierbas de la programación de concurrencia.

Al usar varias instancias, usted convierte la complejidad de subprocesos múltiples en un sistema de estilo de paso de mensajes más simple.