redis rocksdb

Redis vs RocksDB



(3)

He leído sobre Redis y RocksDB, no obtengo las ventajas de Redis sobre RocksDB.

Sé que Redis está en la memoria y RocksDB está en la memoria y usa almacenamiento flash. Si todos los datos caben en la memoria, ¿cuál debo elegir? ¿Tienen el mismo rendimiento? ¿Redis escala linealmente con el número de CPU''s? Supongo que hay otras diferencias que no entiendo.

Tengo un conjunto de datos que cabe en la memoria y iba a elegir Redis, pero parece que RocksDB me ofrece lo mismo y, si un día el conjunto de datos crece demasiado, no tendría que preocuparme por la memoria.


@Guille Si sabe que el comportamiento de los datos calientes (obtenerse con frecuencia) se basa en la marca de tiempo, Rocksdb sería una opción inteligente, pero sí la optimiza para el repliegue utilizando filtros bloom. Si sus datos actuales son aleatorios, vaya a Redis El uso de rocksDB por completo en la memoria no se recomienda generalmente en bases de datos con estructura de registro como Rocksdb y está específicamente optimizado para SSD y almacenamiento flash. Por lo tanto, mi recomendación sería entender el caso de uso y elegir una base de datos para ese caso particular.


Ellos no tienen nada en comun. Estás tratando de comparar manzanas y naranjas aquí.

Redis es un almacén de datos en memoria remoto (similar a memcached). Es un servidor. Una sola instancia de Redis es muy eficiente, pero totalmente no escalable (con respecto a la CPU). Un clúster de Redis es escalable (con respecto a la CPU).

RocksDB es un almacén de clave / valor integrado (similar a BerkeleyDB o, más exactamente, a LevelDB). Es una biblioteca que admite subprocesos múltiples y una persistencia basada en árboles de combinación con estructura de registro.


Si bien la respuesta de Didier Spezia es correcta en su distinción entre los dos proyectos, están vinculados por un proyecto llamado LedisDB . LedisDB es una capa de abstracción escrita en Go que implementa gran parte de la API de Redis sobre motores de almacenamiento como RocksDB. En muchos casos, puede usar la misma biblioteca de cliente de Redis directamente con LedisDB, lo que hace que sea casi un reemplazo del Redis en ciertas situaciones. Redis es obviamente más rápido, pero como OP mencionó en su pregunta, el principal beneficio de usar RocksDB es que su conjunto de datos no está limitado a la cantidad de memoria disponible. Me parece útil no porque esté procesando conjuntos de datos súper grandes, sino porque la RAM es cara y puede sacar más provecho de servidores virtuales más pequeños.