En se connectant directement à Redis avec (côté client) de javascript?
Est-il un moyen de se connecter directement à Redis utilisation côté client (pas Node.js javascript?
Je suis déjà en utilisant Node.js + PHP + Redis + Socket.io (pour le client) avec succès pour plusieurs projets. Cependant, je crois vraiment que cela pourrait être encore simplifié à quelque chose comme PHP + Redis + Navigateur javascript - prendre le Node.js serveur qui est juste un autre serveur, je préfère ne pas l'utiliser s'il n'est pas nécessaire. Pour les choses simples, je pense qu'il serait préférable de simplement de se connecter directement à Redis à l'aide de Javascript.
De ce que je comprends, Redis sert juste à sa demande par le biais d'un port, pour n'importe quel langage peut faire des demandes pour que le port serait de travailler. En théorie, ne pourriez-vous pas juste frapper le redis port du serveur à l'aide de code javascript coté client?
Je suis surtout intéressé à la publier/souscrire des fonctions, ce qui peut ou peut ne pas être possible.
Je ne suis pas sûr si vous pouvez accéder à un non-port 80 port à l'aide d'AJAX, mais vous techniquement devrait être en mesure de transmettre Redis de port à port 80 à l'aide de Nginx proxy inverse ou quelque chose.
Des idées? Juste une pensée. Je suis très heureux avec ma solution actuelle, mais ça ne fait pas mal à me demander si on pouvait faire encore mieux ou plus efficacement.
- voir aussi stackoverflow.com/a/38587333/103081
Vous devez vous connecter pour publier un commentaire.
Vous pouvez uniquement effectuer des requêtes HTTP avec JavaScript côté client et, dans certains navigateurs, les websockets. Cependant, vous devriez regarder dans Webdis. Il ajoute une facile HTTP/JSON couche de Redis et de faire exactement ce que vous voulez.
Edit: Lien fixe.
Le véritable obstacle est de surmonter le non-port 80/443 limitation de la requête ajax dans le navigateur, Même avec la Webdis solution, parce qu'elle va à l'extérieur de port 7379 par défaut,t, et en conflit avec votre Apache ou Nginx processus s'est enfui le port 80.
Mon conseil serait d'utiliser la nginx proxy_pass à point à webdis processus. Vous pouvez rediriger le trafic vers le port 80 et effectuer une requête ajax, sans le désagrément des problèmes de sécurité.
Ci-dessous un exemple de configuration de NGINX qui semble faire l'affaire pour moi.
Sur le frontal de côté, voici un exemple de l'obtention de toutes les touches. Tous redis demandes de passer par /redis par exemple:
OU
Vous pouvez utiliser:
http://wiki.nginx.org/HttpRedis et analyse de la réponse vous-même.
J'ai trouvé que le Redis http interfaces ne fonctionnent pas très bien avec la pub/sub ou sont difficiles à mettre en place (au moment de l'écriture).
Voici ma "solution de contournement" pour pub/sub basé sur le predis exemples.
http://bradleygoldsmith.tumblr.com/post/35601539836/quick-and-dirty-redis-subscribe-publish-notifications
J'ai un tas de prédéfinies redis accesseurs en php, et j'utilise un "routeur" style de la fonction à utiliser par le client via $.les requêtes post avec jQuery. Le routeur est juste un gros switch:
et alors que vous venez de
echo $myClass->router()
- Je y accéder avec jQuery comme:
tout cela fonctionne très bien; c'est peut-être pas idéal, mais cela fait une node.js serveur redondant.
Je suis surpris que personne n'a déjà fait un usage général redis interface dans ce style.