복붙노트

[REDIS] 나는 브라우저에서 실행되는 자바 스크립트에서 레디 스 서버에 직접 연결할 수 있습니까?

REDIS

나는 브라우저에서 실행되는 자바 스크립트에서 레디 스 서버에 직접 연결할 수 있습니까?

나는 Node.js를 라이브러리 레디 스 거기에 알고; 내가 뭘하려는 (서버 호스트 어딘가에 로컬 호스트 나에 하나)가 레디 스 서버를 실행하고 (브라우저 내부 즉 그리스 몽키 또는 크롬을 실행하는 자바 스크립트에서 HTTP (즉, AJAX 또는 HTTP GET 필요에 따라)를 통해 직접 호출한다 어쩌면 확장 스크립트, 또는 북마크 또는 SCRIPT 태그). 합니까 레디 스 네이티브 REST 또는 HTTP API가?

해결법

  1. ==============================

    1.레디 스 HTTP를 이야기하지 않기 때문에 당신은 브라우저에서 실행되는 자바 스크립트에서 레디 스에 직접 연결할 수 없습니다. 당신이 할 수있는 것은이 HTTP 인터페이스를 통해 레디 스 인스턴스와 그것을 가능 작업을하게 넣어은 레디 스의 앞에 webdis입니다.

    레디 스 HTTP를 이야기하지 않기 때문에 당신은 브라우저에서 실행되는 자바 스크립트에서 레디 스에 직접 연결할 수 없습니다. 당신이 할 수있는 것은이 HTTP 인터페이스를 통해 레디 스 인스턴스와 그것을 가능 작업을하게 넣어은 레디 스의 앞에 webdis입니다.

  2. ==============================

    2.당신은 말 그대로 HTTP를 통해 레디 스 서버에 연결할 수 있으며,이를 기반으로 보안 공격이있다.

    당신은 말 그대로 HTTP를 통해 레디 스 서버에 연결할 수 있으며,이를 기반으로 보안 공격이있다.

    어쩌면이 레디 스에 대한 자바 스크립트 클라이언트를 만드는 데 사용 될 수 있습니까? 도시 된 예에서, 명령들을 실행하는 레디 스 서버로 직접 전송된다. 그러나 실제적으로 말하면, 당신은 +의 nginx 기본적으로 직접 대화에 레디 스의 앞에 openresty 사용할 수 있습니다 레디 스 자체에 대한 연결 제한을 공유합니다 nginx를 다중 스레드 서버의 레디 스를 통해 HTTP 및 얻는 성능 이점에.

  3. ==============================

    3.Webdis는 레디 스의 앞에서의 nginx 서버를 사용하여 매우 매우 느린 비교입니다

    Webdis는 레디 스의 앞에서의 nginx 서버를 사용하여 매우 매우 느린 비교입니다

    당신은 단지 간단한 모드 - 펄에서 클라이언트를 레디 스 구현의 nginx 뒤에 노출되면, 당신은 쉽게 아주 좋은 성능을 얻을 수 있습니다. 그리고 당신은 너무 많은 로직을 처리 할 수 ​​있습니다

  4. ==============================

    4.@Theo 설명으로 직접 연결할 수는 없지만 당신이 webdis을하고 난을 제거해이 접근 방식을 기반으로하는 약속에 찬성, 아약스와 함께 자신을 주위에 일 처리하는 라이브러리가 다음 설정 레디 스합니다.

    @Theo 설명으로 직접 연결할 수는 없지만 당신이 webdis을하고 난을 제거해이 접근 방식을 기반으로하는 약속에 찬성, 아약스와 함께 자신을 주위에 일 처리하는 라이브러리가 다음 설정 레디 스합니다.

    브라우저에서 webdis + 레디 스 백엔드에 연결 : webdismay 내가 최근에 출시 가지고 JS 라이브러리 (MIT 라이센스)입니다. 그것은 키 / 문자열,리스트, 해시 및 설정에서 작동 명령에 대한 일반적이고 열쇠가없는 레디 스 명령 및 조직 클래스의 기능을 제공, 백 엔드를 webdis 약속은 레디 스 +와 통신에 접근 ES6 걸립니다. 모든 기능 / 방법 ES6 약속을 반환합니다.

    기본 구성에, 당신은 레디 스로 설정 webdis을 가정하면 "/"에 게시 요청을 수락하는 서버로 데이터를 전송하고 브라우저에 다음과 같을 것입니다 나중에 다시 그것을 얻기의 다음 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) 쓰고 있어요, 처음 두 수입 라인은 니혼 전자 : JSPM 같은 도구를 일부 번역 및 포장 도움이 필요하거나 (당신이 필요로 가져 오기를 변경하는 경우) browserify.

    이것은 아직 정확히 초보자 친화적 아니라, 누군가가 지속적으로 자바 스크립트 숙어와 레디 스 사이에 정신적으로 번역하고 자신의 아약스를 작성하지 않고도 브라우저에서 webdis + 레디 스를 사용하도록 허용 할 수 있습니다.

  5. from https://stackoverflow.com/questions/5759120/can-i-connect-directly-to-a-redis-server-from-javascript-running-in-a-browser by cc-by-sa and MIT license