Actualmente estoy migrando algunos datos a Redis y estoy considerando usar un conjunto ordenado para almacenar aproximadamente 1.4e6 elementos (con puntajes/recuentos asociados). ¿Es probable que esta cantidad de elementos en un conjunto exceda un límite práctico, por lo que es demasiado doloroso usar el conjunto? Planeo ejecutar redis de 64 bits, por lo que la memoria disponible para los datos no debería ser un problema. ¿Alguien tiene experiencia con un conjunto ordenado de este tamaño? Si es así, ¿cómo son sus tiempos de inserción y consulta para el conjunto?¿Existe un límite práctico para la cantidad de elementos en un conjunto ordenado en redis?
Respuesta
Depende de lo que quiera hacer con el conjunto. Las operaciones simples son en su mayoría O (log n) lo que significa que solo requieren el doble de tiempo para un millón de elementos establecidos que para un conjunto de mil elementos. A menos que tengas algo gravemente roto en tu configuración como un límite de memoria más pequeño que el configurado, el rendimiento no debería ser un problema.
Donde debe tener cuidado es con las operaciones en varios conjuntos, en particular la unión, que llevará mil veces más tiempo para el conjunto de millones de elementos. Sin embargo, en términos prácticos esto no es necesariamente un problema: o bien será lo suficientemente rápido para sus propósitos (Redis tiene comandos documentados como demasiado lentos para el uso de producción que aún se miden mejor en milisegundos) o puede ajustar el orden de las operaciones a evite ejecutar la unión en conjuntos realmente grandes.
Nuestro sitio tiene un conjunto ordenado con alrededor de 2 millones de elementos (direcciones de correo electrónico) con puntuaciones enteras y ocupaba aproximadamente 320 MB en tamaño de memoria.
- 1. ¿Existe un límite práctico en la cantidad de archivos mapeados en memoria en iOS?
- 2. ¿Existe un límite práctico para la cantidad de elementos de lienzo que puede tener en una página?
- 3. inversa paginación a través de un Redis Ordenado Conjunto
- 4. Redis: Suma de PUNTUACIONES en conjunto ordenado
- 5. ¿Existe un límite de longitud de encabezado HTTP práctico?
- 6. ¿Existe un límite para la cantidad de archivos en un directorio en una tarjeta SD?
- 7. Límite práctico para la cantidad de bases de datos en SQL Server?
- 8. ¿Existe un límite superior para la cantidad de confirmaciones que un repositorio de git puede manejar?
- 9. CSS: ¿Existe un límite en la cantidad de clases que puede tener un elemento HTML?
- 10. ¿Existe un límite en la cantidad de tablas que puede tener en una base de datos?
- 11. Existe un límite de memoria para un solo proceso .NET
- 12. ¿existe un límite en la cantidad de hilos que ruby puede ejecutar a la vez?
- 13. ¿Existe un límite en la cantidad de contextos de representación de OpenGL que puede crear simultáneamente?
- 14. ¿Existe un límite en cuanto a la capacidad de JSON?
- 15. MySQL ¿Existe un límite para InnerJoin?
- 16. Encuentra de manera dinámica piónica los elementos mínimos en un conjunto parcialmente ordenado
- 17. ¿Existe un límite en la cantidad de aplicaciones diferentes que un desarrollador único puede publicar en Android Market?
- 18. Comprobando si existe un valor en una lista Redis
- 19. ¿Límite en la cantidad de parámetros genéricos en .NET?
- 20. Buscando un comando copiar conjunto (o alternativa) en Redis
- 21. Límite práctico sobre el número de subprocesos en Linux en un marco cooperativo
- 22. ¿Cuál es la etiqueta de plantilla django para obtener la cantidad de elementos devueltos en un conjunto de resultados?
- 23. ¿Existe un límite en la longitud de la clave para localStorage?
- 24. Cualquier implementación de conjunto ordenado en Java?
- 25. STL + Conjunto ordenado + sin duplicados
- 26. ¿Cómo contar la cantidad de elementos en un NSArray?
- 27. ¿Cómo obtener la cantidad de elementos en un cuadro combinado?
- 28. MySQL: ¿LÍMITE por un porcentaje de la cantidad de registros?
- 29. ¿Cómo convertir una lista o un vector en un conjunto ordenado en Clojure?
- 30. ¿Existe algún límite en la cantidad de clases que un espacio de nombres puede tener en .net?
Sí, tenemos alrededor de 1 M int => int pares y no sé exactamente cuánto espacio está usando, pero debería ser de alrededor de 100mb/200mb .. – Juan