Redis에는 node.js 라이브러리가 있습니다. 내가 뭘하고 싶은데요 로컬 호스트 또는 어딘가에 서버 호스트에서 Redis 서버를 실행하고 자바 스크립트 (예 : Greasemonkey 또는 크롬)에서 직접 (즉, 필요에 따라 AJAX 또는 HTTP GET)를 통해 직접 전화 확장 스크립트 또는 북마클릿 또는 SCRIPT 태그). Redis는 기본 REST 또는 HTTP API를 가지고 있습니까?브라우저에서 실행중인 JavaScript에서 Redis 서버에 직접 연결할 수 있습니까?
답변
사실상 http를 통해 redis 서버에 연결할 수 있으며이를 기반으로 한 보안 취약성이 있습니다. 어쩌면이 레디 스에 대한 자바 스크립트 클라이언트를 만드는 데 사용할 수 http://benmmurphy.github.io/blog/2015/06/04/redis-eval-lua-sandbox-escape/
-
레디 스 효과적으로 HTTP 서버 입니까? 표시된 예에서 명령은이를 실행하는 redis 서버로 직접 전송됩니다. 그러나 실질적으로 말해 redis 앞에서 openresty + nginx를 사용하여 http를 통해 redis와 직접 대화하고 nginx의 다중 스레드 서버의 성능 이점을 얻을 수 있습니다.이 서버는 redis 자체에 제한된 연결을 공유합니다.
@Theo가 설명했듯이 직접 연결할 수는 없지만 webdis와 redis가 설정된 경우 ajax를 사용하여 약속 기반 접근 방식을 선호하는 라이브러리를 사용할 수 있습니다.
webdismay은 최근에 브라우저에서 webdis + redis 백엔드에 연결 (라이센스 : MIT) 한 JS 라이브러리입니다. redis + webdis 백엔드와 통신하는 ES6 Promises 접근 방식을 사용하여 Keys/Strings, Lists, Hash 및 Sets에서 작동하는 명령에 대한 일반 클래스 및 키없는 redis 명령과 조직 클래스에 functions을 제공합니다. 모든 함수/메소드는 ES6 약속을 반환합니다.
webdis가 redis로 설정되었다고 가정하고 기본 구성에서 "/"에 대한 요청을 받아들이면 webdismay로 서버에 데이터를 보내고 나중에 다시 가져 오는 간단한 예가 브라우저에서 나타납니다 (ES6에) :시
import 'whatwg-fetch'; // fetch polyfill
import * as W from 'webdismay';
const k = W.key('some-redis-key');
k.set('Hello, World!'); // store the information
// wait a while, e.g. in the dev console or with setTimeout()
k.get().then((v)=>console.log(v)); // --> Hello, World!
나는이 (7 월 (2016)), (당신이 import
require
에를 변경하는 경우) 처음 두 import
라인 니혼 전자 : JSPM 또는 browserify 같은 도구를 일부 번역 및 포장 도움을 필요로 쓰고 .
이것은 아직 초보자 친화적 인 것은 아니지만 자바 스크립트 관용어와 redis간에 끊임없이 정신적으로 번역하고 자신의 아약스를 작성하지 않고도 브라우저에서 webdis + redis를 사용할 수있게 할 수 있습니다.
- 1. Redis를 Javascript로 직접 연결할 수 있습니까?
- 2. Redis 캐시 서버에 연결하는 동안 오류가 발생했습니다.
- 3. Javascript에서 array.push()를 연결할 수 있습니까?
- 4. 이미 실행중인 gdb 프로세스에 연결할 수 있습니까?
- 5. 서버에 연결할 수 없습니다.
- 6. 인터넷에있는 서버에 연결할 수 없습니다.
- 7. postgreSQL을 Javascript에 직접 연결할 수 있습니까?
- 8. SQL 서버에 비동기 적으로 연결할 수 있습니까?
- 9. PHP를 OPC 서버에 연결할 수 있습니까?
- 10. iPhone에서 SQL 서버에 연결할 수 있습니까?
- 11. QT로 넷 Remoting 서버에 연결할 수 있습니까?
- 12. Selenium ide에서 데이터베이스 서버에 연결할 수 있습니까?
- 13. 인터넷을 통해 VisualSVN 서버에 연결할 수 있습니까
- 14. "원격 서버에 연결할 수 없습니다"
- 15. SQL 서버에 연결할 수 없습니다.
- 16. SQL 서버에 연결할 수 없습니다.
- 17. ftp 서버에 연결할 수 없습니다.
- 18. 로컬 서버에 연결할 수 없습니다.
- 19. vs2010이 ASP.net 개발 서버에 연결할 수 없습니다.
- 20. Javascript 클라이언트가 어떻게 PHp 소켓 서버에 연결할 수 있습니까?
- 21. 브라우저에서 실행중인 javascript에서 클라이언트 컴퓨터에서 실행되는 python 프로그램으로 URL을 보낼 수 있습니까?
- 22. 브라우저에서 실행중인 Flash 앱이 다른 앱에서 데이터를 가져 오기 위해 localhost에 연결할 수 있습니까?
- 23. Javascript에서 XMPP 서버에 연결하는 방법
- 24. Drupal 4.7 데이터베이스 서버에 연결할 수 없습니다.
- 25. SCILAB에서 직접 Java 소스 코드를 직접 사용할 수 있습니까? 아니면 둘 다 연결할 수 있습니까?
- 26. 어떻게 JavaScript에서 정규 표현식 리터럴을 연결할 수 있습니까?
- 27. Selenium : 원격 서버에 연결할 수 없습니다.
- 28. Tibco JMS 서버에 연결할 수 없습니다.
- 29. BitBlt를 직접 GDI + 비트 맵에 연결할 수 있습니까?
- 30. 어떻게 3G를 통해 모바일 장치에 직접 연결할 수 있습니까?
나는이 질문을 다시 제기하는 것을 고려하고 있지만 브라우저에서 작동하는 HTTP가 아닌 실시간 redis-client처럼 '실제'를 원한다고 규정하고 있습니다. Redis와 직접 통신하는 클라이언트 웹 애플리케이션을 구성하는 CDN 서비스 자산만으로 훌륭한 실시간 인프라를 구축 할 수있었습니다. 나는 시스템의 불필요한 WebSocket 서버 부분을 없애고 싶다. 모든 제어 로직은 루아의 redis 클러스터로 내부화 될 수 있습니다. –
http://stackoverflow.com/questions/33241247/what-would-it-take-to-implement-a-good-redis-client-in-the-web-browser –