Comparez les prix des domaines et des services informatiques des vendeurs du monde entier

Installation de modules supplémentaires LUA dans Redis

J'essaie de faire Redis Autoriser EVAL (
http://redis.io/commands/EVAL
) Exécuter des demandes HTTP.

Cette fonctionnalité est fournie par deux modules: LuaCURL et Luasocket. En code source Redis Il y a un répertoire avec des modules supplémentaires (par exemple, cjson)
http://download.redis.io/redis ... /src/
, J'ai essayé d'ajouter luacurl.c, Mais j'ai reçu une erreur pour une erreur. J'ai réussi à le compiler, allumant os.execute - édité scripting.c - qui me permet d'exécuter la commande curl, Mais c'est une mauvaise solution.

Comment puis-je compiler des demandes HTTP dans Redis Lua?

Probablement le moyen le plus simple de le faire - Créer un fichier séparé luasocket.so, Mais je ne suis pas sûr de la façon de le faire.
Invité:

Agathe

Confirmation de:

Ne vous inquiétez pas, tout ce dont j'avais besoin est un sommeil nocturne pour avoir un esprit frais.

j'ai téléchargé
http://files.luaforge.net/releases/luacurl/luacurl
et bouger luacurl.c Dans le dossier / deps / lua / src / Et éditer la chaîne 23 de

#include <lauxlib.h>

à

#include "lauxlib.h"

Et puis B. / deps / lua / src / Makefile (Make-file. Lua, mais non Redis) Aller à la corde 30 et trouve

lua_cjson.o

Ajouter "luacurl.o" à côté de lui comme ça

lua_cjson.o luacurl.o

Et puis B. / src / Makefile (Fichier d'assemblage Redis, mais non Lua) Changer la chaîne 54 de

FINAL_LIBS=-lm

à

FINAL_LIBS=-lm -lcurl

Enfin, assurez-vous d'avoir installé «yum install curl-devel», Puis compiler.

Gardez à l'esprit qu'aucun autre client ne peut exécuter des commandes pendant que le serveur est occupé des scénarios Lua.
</lauxlib.h>

Agathe

Confirmation de:

Installation de modules personnalisés Lua dans Redis
http://redis.io/commands/EVAL#comment-755674447
, En utilisant la procédure de type user3786834. Si vous avez vraiment besoin d'utiliser un module particulier, vous pouvez être votre seul choix.

Cependant, si votre bibliothèque utilise uniquement le code Lua (sans code C), L'option la plus simple qui augmente également la portabilité de votre application peut être l'inclusion du code source de ce module directement dans votre script. EVAL.

Pour répondre aux questions, connectez-vous ou registre