Redis
 sql >> Base de données >  >> NoSQL >> Redis

Redis lua quand vraiment l'utiliser ?

Scripts Lua sont censés fonctionner comme MULTI commandes. En fait, la plupart des commandes que vous développeriez en utilisant MULTI les commandes d'un client Redis peuvent être implémentées en Lua. Autrement dit, vous pouvez encapsuler certaines opérations complexes dans un script et votre couche de données effectuera l'opération d'écriture atomique sans vous soucier de votre stratégie de modélisation de données sur Redis.

De plus, je les trouve utiles lorsque vous souhaitez effectuer des opérations de lecture rapides mais complexes. Par exemple, vous souhaiterez peut-être mettre des objets en ordre. Les objets sont stockés dans une clé de hachage tandis que l'ordre est défini par une clé d'ensemble triée . Vous obtenez une plage du soi-disant ensemble trié et vous obtenez des objets dans le hachage en utilisant hmget .

Le point le plus important est que les scripts Lua doivent implémenter des choses qui peuvent s'exécuter aussi rapidement que possible, car Redis bloquera d'autres opérations pendant l'exécution d'un script Lua. Autrement dit, vous devez effectuer des interruptions rapides ou vos performances Redis globales diminueront considérablement.

Arguments pour ne pas utiliser Lua

Je dirais que vous devriez les utiliser quand vous en avez vraiment besoin. Généralement, les clients sont développés à l'aide de langages de programmation de haut niveau comme C#, Java, JavaScript, Ruby... et ils offrent une meilleure expérience de développement :bons débogueurs, IDE, complétion de code...

Résumé :vous devez les utiliser si vous pouvez prouver qu'il existe un avantage réel (en termes de performances) si vous transformez une partie de la logique de votre domaine en scripts Redis Lua.