Redis lua cuando realmente usarlo?
He comenzado a investigar y jugar un poco con lua y he encontrado que es genial cuando quiero agarrar rangos de teclas. Ex:
business:5:visits:2013-11-12
business:5:visits:2013-11-13
etc
Con lua solo tengo que enviar un comando a redis en lugar del rango completo de fechas.
Ahora estoy pensando en convertir más de nuestra lógica y moverla a Redis.
Tome nuestro proceso de almacenamiento de mensajes que actualmente se ve así:
// create a new unique id
redisClient.incr(Config.messageId, function(err, reply) {
var messageId = reply.toString();
var timestmp = Date.now();
// push message
redisClient.zadd(Config.history + ':' + obj.uid + ':' + obj.channel.replace(/\s+/g, ''), timestmp, messageId);
// store the message data by messageId
redisClient.hmset(Config.messageHash + ':' + messageId, {
'user_id': obj.uid,
'text_body': "some text",
'text_date': timestmp,
});
// set expires
redisClient.expire(Config.history + ':' + obj.uid + ':' + obj.channel.replace(/\s+/g, ''), Config.messageExpire);
redisClient.expire(Config.messageHash + ':' + messageId, Config.messageExpire);
// add to mysql-sync queue
redisClient.RPUSH(Config.messageMySQLSyncQueue, Config.messageHash + ':' + messageId);
});
Lo anterior podría convertirse fácilmente en lua, pero ¿vale la pena por su rendimiento?
¿Sería más rápido escribir esto en Lua y solo tener que emitir 1 comando a Redis? ¿Causaría problemas al bloquear otros comandos?