sql >> Base de Datos >  >> NoSQL >> Redis

Redis es lento para obtener cadenas grandes

Redis no está diseñado para almacenar objetos muy grandes. No se supone que almacene toda su colección en una sola cadena en Redis, sino que use la lista Redis o establezca como un contenedor para sus objetos.

Además, el formato de pepinillo no está optimizado para el espacio... necesitarías un formato más compacto. Protocol Buffers, MessagePack, o incluso JSON simple, probablemente sean mejores para esto. Debe considerar aplicar un algoritmo de compresión ligero antes de almacenar sus datos (como Snappy, LZO, Quicklz, LZF, etc.).

Finalmente, el rendimiento probablemente esté ligado a la red. En mi máquina, recuperar un objeto de 20 MB de Redis toma 85 ms (no 3 segundos). Ahora, si ejecuto la misma prueba usando un servidor remoto, toma 1.781 segundos, lo que se espera en esta red de 100 Mbit/s. La duración depende totalmente del ancho de banda de la red.

Último punto:asegúrese de usar una versión reciente de Redis:se han realizado varias optimizaciones para manejar objetos grandes.