[REDIS] Webfaction에 레디 스 설정
REDISWebfaction에 레디 스 설정
Webfaction 호스팅 계정을 공유에 레디 스 데이터베이스를 설정하는 데 필요한 단계는 무엇인가?
해결법
-
==============================
1.때문에 Webfaction 서버의 특별한 환경 규제의 설치 지침은 것 같이 간단으로하지 않습니다. 그럼에도 불구하고 마지막에 당신은 완전히 기능 레디 스 서버가있는 것이다 숙박까지 다시 부팅 한 후에도 그. 나는 개인적 년 전 반에 대한 다음과 같은 절차에 의해 레디 스를 설치하고 그 이후 flawlessy를 실행하고있다. 하지만 경고의 작은 낱말은, 반년는 서버가 무거운 사용에 따라되지 않았습니다 특히 때문에, 긴 시간이 아니다.
때문에 Webfaction 서버의 특별한 환경 규제의 설치 지침은 것 같이 간단으로하지 않습니다. 그럼에도 불구하고 마지막에 당신은 완전히 기능 레디 스 서버가있는 것이다 숙박까지 다시 부팅 한 후에도 그. 나는 개인적 년 전 반에 대한 다음과 같은 절차에 의해 레디 스를 설치하고 그 이후 flawlessy를 실행하고있다. 하지만 경고의 작은 낱말은, 반년는 서버가 무거운 사용에 따라되지 않았습니다 특히 때문에, 긴 시간이 아니다.
설치, 테스트, 서버 시작 서버 관리 및 서버 실행을 유지 : 지침은 다섯 개 부분으로 구성되어 있습니다.
당신의 Webfaction 쉘에 로그인
ssh foouser@foouser.webfactional.com
레디 스 다운로드 사이트에서 최신 레디 스를 다운로드합니다.
> mkdir -p ~/src/ > cd ~/src/ > wget http://download.redis.io/releases/redis-2.6.16.tar.gz > tar -xzf redis-2.6.16.tar.gz > cd redis-2.6.16/
만들기 전에 참조는 서버가 리눅스 32 또는 64 비트입니다. 설치 스크립트는 적어도 Webfaction의 CentOS는 5 시스템에서 잘 32 개 비트 환경을 처리하지 않습니다. 비트의 명령 UNAME -m이다. 리눅스는 32 비트 인 경우, 결과는 다음의 경우 64 비트 x86_64에,는 i686 것이다. 자세한 내용은이 대답을 참조하십시오.
> uname -m i686
서버가 64 비트 (x86_64의)의 경우, 단지합니다.
> make
서버가 32 비트 (는 i686) 인 경우 그러나 당신은 약간의 여분의 물건을 수행해야합니다. 이 명령 메이크업 32 비트는하지만 오류가 발생합니다. 편집 설치 스크립트에서 줄 일 수 있도록 32 비트를 확인합니다.
> nano ~/src/redis-2.6.16/src/Makefile
이에서 라인 (214)을 변경
$(MAKE) CFLAGS="-m32" LDFLAGS="-m32"
이에
$(MAKE) CFLAGS="-m32 -march=i686" LDFLAGS="-m32 -march=i686"
및 저장합니다. 그런 다음 32 비트 플래그와 함께 메이크업을 실행합니다.
> cd ~/src/redis-2.6.16/ ## Note the dir, no trailing src/ > make 32bit
실행 파일은 디렉토리 ~ / src에 / 레디 스-2.6.16 / SRC /로 만들어졌다. 실행 파일은 레디 스-CLI, 레디 스 서버를 포함-벤치 마크 레디 스 및 레디 스-감시합니다.
설치의 출력에서 알 수 있듯이,이 테스트를 실행하여 모든 항목이 예상대로 작동을 보장하기 위해 좋은 것입니다.
Hint: To run 'make test' is a good idea ;)
불행하게도 테스트는 기계 web223에 대한 최소한의 기본하지 않은 설치 될 tlc8.6.0이 필요합니다. 그래서 당신은 소스에서 먼저 설치해야합니다. 은 Tcl / Tk의 설치 노트와 컴파일 노트를 참조하십시오.
> cd ~/src/ > wget http://prdownloads.sourceforge.net/tcl/tcl8.6.0-src.tar.gz > tar -xzf tcl8.6.0-src.tar.gz > cd tcl8.6.0-src/unix/ > ./configure --prefix=$HOME > make > make test # Optional, see notes below > make install
메이크업 테스트와 테스트 Tcl은 시간이 걸릴 것 또한 WebFaction의 환경 규제로 인해 실패합니다. 당신이 건너 나는 제안한다.
이제 우리는 TLC는 우리가 레디 스 테스트를 실행할 수 있습니다 설치되어있다. 테스트는 시간이 오래 걸릴 또한 일시적으로 메모리의 꽤 많은 양을 사용합니다.
> cd ~/src/redis-2.6.16/ > make test
시험 후에는 계속 준비가 된 것입니다.
첫째, Webfaction 제어판을 통해 사용자 지정 응용 프로그램 (사용자 지정 응용 프로그램 포트 (듣기))를 만듭니다. 예를 들어 fooredis 위해 이름을 지정합니다. 당신은 레디 스 같은 호스트에서 즉 로컬에만 사용되는 경우 앱의 도메인이나 웹 사이트를 만들 필요는 없습니다.
두 번째는 앱 주어진 소켓 포트 번호에 대한 메모를합니다. 예제가 23,015을하자.
응용 프로그램의 디렉토리에 이전에 컴파일 된 실행 파일을 복사합니다. 당신은 당신이 필요로하는 모든 또는 유일한 사람을 복사 할 수도 있습니다.
> cd ~/webapps/fooredis/ > cp ~/src/redis-2.6.16/src/redis-server . > cp ~/src/redis-2.6.16/src/redis-cli .
또한 샘플 구성 파일을 복사합니다. 당신은 곧 수정됩니다.
> cp ~/src/redis-2.6.16/redis.conf .
이제 레디 스 이미 실행 가능한 것입니다. 부부 문제 그러나이있다. 먼저 기본 레디 스 포트 6379가 이미 사용 될 수 있습니다. 둘째, 포트가없는 경우에도, 그래, 당신은 서버를 시작할 수 있지만, 그것은 당신이 쉘을 종료 같은 순간에 실행을 중지합니다. 첫 번째의 경우 redis.conf 편집해야하며, 초, 당신은 또한 redis.conf을 편집하여 해결 데몬이 필요합니다.
레디 스 데몬 모드에서 자신을 실행 할 수 있습니다. 당신은 데몬의 프로세스 ID, PID를 저장 장소를 설정할 필요가있다. 일반적으로 pidfiles은 / var에 / 실행에 저장 / 되었음에도 불구하고, 현재의 환경 규제 때문에 당신은 당신의 홈 디렉토리에 그들을 위해 장소를 선택해야합니다. 이유는 서버 관리 부분에서 나중에 설명하기 때문에 좋은 선택은 실행 파일과 같은 디렉토리 아래에 pidfile을 넣어하는 것입니다. 당신은 자신을, 레디 스 자동으로 당신을 위해 그것을 만들어 파일을 만들 필요가 없습니다.
이제 편집에 대한 redis.conf를 엽니 다.
> cd ~/webapps/fooredis/ > nano redis.conf
다음과 같은 방식으로 구성을 변경합니다.
이제 마지막으로, 레디 스 서버를 시작합니다. 레디 스 올바른 포트를 청취하고 데몬으로 실행되도록 conf의 파일을 지정합니다.
> cd ~/webapps/fooredis/ > ./redis-server redis.conf >
가 실행을 참조하십시오.
> cd ~/webapps/fooredis/ > ./redis-cli -p 23015 redis 127.0.0.1:23015> SET myfeeling Phew. OK redis 127.0.0.1:23015> GET myfeeling "Phew." redis 127.0.0.1:23015> (ctrl-d) >
당신이 원하는 경우 서버를 중지합니다.
> ps -u $USER -o pid,command | grep redis 718 grep redis 10735 ./redis-server redis.conf > kill 10735
또는
> cat redis.pid | xargs kill
사용 및 다음 부분에 대한 준비 작업과 편의를 위해 클라이언트를 열고 시작, 다시 시작하고 서버를 중지하는 데 도움이 스크립트를합니다. 쉬운 솔루션은 메이크 파일을 작성하는 것입니다. 메이크 파일을 작성할 때, 대신 공간의 탭을 사용해야합니다.
> cd ~/webapps/fooredis/ > nano Makefile # Redis Makefile client cli: ./redis-cli -p 23015 start restart: ./redis-server redis.conf stop: cat redis.pid | xargs kill
규칙은 매우 자명하다. 두 번째 규칙에 대한 특별는 그 데몬 모드로, 이미 실행중인 하나이 경우 새 프로세스를 생성하지 않습니다 ./redis-server를 호출하는 동안.
세 번째 규칙은 그 안에 조용한 지혜가 있습니다. redis.pid이 fooredis의 디렉토리 아래에 있지만 /var/run/redis.pid에 예를 들어 저장되지 않은 경우 다음 서버를 중지 그렇게 쉽지 않을 것입니다. 당신은 동시에 여러 레디 스의 인스턴스를 실행할 경우에 주로 적용된다.
규칙을 실행하려면 :
> make start
이제 레디 스의 인스턴스 당신이 그것을 중지하지 않고 쉘을 종료 할 수 있습니다 데몬 모드로 실행해야합니다. 이것은 아직 충분하지 않습니다. 어떤 프로세스가 충돌하면? 서버 컴퓨터는 무엇을 재부팅하면? 이 다루 두 cronjobs을 만들어야합니다.
> export EDITOR=nano > crontab -e
다음 두 줄을 추가하고 저장합니다.
*/5 * * * * make -C ~/webapps/fooredis/ -f ~/webapps/fooredis/Makefile start @reboot make -C ~/webapps/fooredis/ -f ~/webapps/fooredis/Makefile start
첫 번째 실행 fooredis 각 5 분 보장합니다. 하나가 이미 실행중인 경우이 새로운 프로세스를 시작하지 않습니다 위와 같이 말했다. fooredis 두 번째의 보장하지만은 서버 시스템 재부팅 후 긴의 첫 번째 규칙 차기 직전에 시작됩니다.
이에 대한 좀 더 deligate 방법은 영원히 예를 들어, 사용할 수있다. 주제에 대한 이상이 Webfaction 커뮤니티 스레드를 참조하십시오.
이제 당신은 그것이있다. 일 많이 수행하지만 어쩌면 더 올 것이다. 당신이 좋아하는 수 상황이 여기에 포함 다음이 포함되지 않은 미래에해야 할 일.
모든 아이디어, 의견이나 수정?
-
==============================
2.Akseli의 훌륭한 대답을 요약하면 :
Akseli의 훌륭한 대답을 요약하면 :
assume your user is named "magic_r_user" cd ~ wget "http://download.redis.io/releases/redis-3.0.0.tar.gz" tar -xzf redis-3.0.0.tar.gz mv redis-3.0.0 redis cd redis make make test create a custom app "listening on port" through the Webfaction management website assume we named it magic_r_app assume it was assigned port 18932 cp ~/redis/redis.conf ~/webapps/magic_r_app/ vi ~/webapps/magic_r_app/redis.conf daemonize yes pidfile ~/webapps/magic_r_app/redis.pid port 18932 test it ~/redis/src/redis-server ~/webapps/magic_r_app/redis.conf ~/redis/src/redis-cli -p 18932 ctrl-d cat ~/webapps/magic_r_app/redis.pid | xargs kill crontab -e */1 * * * * /home/magic_r_user/redis/src/redis-server /home/magic_r_user/webapps/magic_r_app/redis.conf &>> /home/magic_r_user/logs/user/cron.log don't forget to set a password!
-
==============================
3.당신은 레디 스를 설치하는 경우 컴파일 할 때 참고로, 2.8.8+ 오류, __sync_add_and_fetch_4에 정의되지 않은 참조를 얻을 수 있습니다. 자세한 내용은 http://www.eschrade.com/page/undefined-reference-to-__sync_add_and_fetch_4/를 참조하십시오.
당신은 레디 스를 설치하는 경우 컴파일 할 때 참고로, 2.8.8+ 오류, __sync_add_and_fetch_4에 정의되지 않은 참조를 얻을 수 있습니다. 자세한 내용은 http://www.eschrade.com/page/undefined-reference-to-__sync_add_and_fetch_4/를 참조하십시오.
나는 페이지가 지금까지 오프라인 경우 아래 해당 페이지에서 관련 부분을 붙여했습니다. 기본적으로 당신은 CFLAGS 변수를 내보내고 빌드 프로세스를 다시 시작해야합니다.
[root@devvm1 redis-2.6.7]# export CFLAGS=-march=i686 [root@devvm1 redis-2.6.7]# make distclean [root@devvm1 redis-2.6.7]# make
from https://stackoverflow.com/questions/18622630/setting-up-redis-on-webfaction by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] 레디 스 복제 및 레디 스 샤딩 (클러스터)의 차이 (0) | 2020.01.10 |
---|---|
[REDIS] 자바 메모리 대 Memcache를 (0) | 2020.01.10 |
[REDIS] 빠른 쓰기위한 MongoDB를 대 레디 스 대 카산드라, 일시적 행 스토리지 솔루션 (0) | 2020.01.10 |
[REDIS] 장단점 RQ 셀러리 대를 사용하여 [폐쇄] (0) | 2020.01.10 |
[REDIS] 레디 스 이미 스택의 일부인 경우, 왜 여전히 memcached를 레디 스 함께 사용? (0) | 2020.01.10 |