16.04.01 AWS의 LTS-Redis가 더 이상 작동하지 않습니다


10

우리는 많은 AWS EC2 Ubuntu 인스턴스 (14.04.4 LTS)에서 문제없이 redis-server를 실행했습니다. 테스트 서버를 회전시켜 Ubuntu 16.04.1 LTS로 업그레이드하려고 시도했지만 이제 redis가 작동하지 않습니다.

redis를 수동으로 시작하려고하면 다음과 같은 결과가 나타납니다.

~$ sudo service redis-server restart
Job for redis-server.service failed because the control process exited with error code. See "systemctl status redis-server.service" and "journalctl -xe" for details.

오류 정보 :

~$ systemctl status redis-server.service  
● redis-server.service - Advanced key-value store
  Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
  Active: inactive (dead) (Result: exit-code) since Wed 2016-10-19 19:26:06 UTC; 25min ago
    Docs: http://redis.io/documentation,
          man:redis-server(1)
 Process: 3730 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf (code=exited, status=1/FAILURE)
 Process: 3724 ExecStartPre=/bin/run-parts --verbose /etc/redis/redis-server.pre-up.d (code=exited, status=0/SUCCESS)

Oct 19 19:26:06 ip-x-y-z-w systemd[1]: redis-server.service: Control process exited, code=exited status=1
Oct 19 19:26:06 ip-x-y-z-w systemd[1]: Failed to start Advanced key-value store.
Oct 19 19:26:06 ip-x-y-z-w systemd[1]: redis-server.service: Unit entered failed state.
Oct 19 19:26:06 ip-x-y-z-w systemd[1]: redis-server.service: Failed with result 'exit-code'.
Oct 19 19:26:06 ip-x-y-z-w systemd[1]: redis-server.service: Service hold-off time over, scheduling restart.
Oct 19 19:26:06 ip-x-y-z-w systemd[1]: Stopped Advanced key-value store.
Oct 19 19:26:06 ip-x-y-z-w systemd[1]: redis-server.service: Start request repeated too quickly.
Oct 19 19:26:06 ip-x-y-z-w systemd[1]: Failed to start Advanced key-value store.

나는 다음을 시도했다.

  • 서버를 다시 시작
  • Redis 재시작이 포함 된 배포 스크립트를 실행하십시오.
  • sudo apt-getredis-server를 제거하고 다시 설치 하는 데 사용
  • /etc/redis/redis.conf패키지에서 새 파일을 수락 하고 원래 파일을 한 번 유지 하면 설치가 두 번 완료되었습니다.

어떤 제안?


대답은 아니지만 도움이 될 수 있습니다 : redis를 docker container로 실행할 수 있습니다.
— pLumo

답변:


5

나는 다음을 사용하여 redis를 설치했다. apt-get install redis-server

나에게 문제 : 내가 찾은 자습서 예. 이 질문에 대한 다른 답변은 redis 바이너리가에 있다고 가정합니다 /usr/local/bin.

내 설치에서 그것들은 /usr/bin그래서 /etc/systemd/system/redis.service그것을 반영 하도록 수정 되고 있습니다.

이 시점에서 /usr/bin/redis-server /etc/redis/redis.conf 수동으로 성공적으로 시작할 수 있습니다 sudo systemctl start redis.

따라서 redis가 16.04에서 작동하도록하려면 다음을 수행하십시오.

  1. 당신이 사용하여 설치 확인 apt-get install redis-server, 하지 후, 타르를 다운로드 할 및 설치합니다.
  2. 다음을 실행하여 redis 서비스 생성 또는 편집 sudo vi /etc/systemd/system/redis.service
  3. 다음과 같이 편집 한 후 저장하십시오.
[Unit]
Description=Redis Datastore Server
After=network.target

[Service]
Type=forking
PIDFile=/var/run/redis/redis_6379
User=redis
Group=redis

Environment=statedir=/var/run/redis
PermissionsStartOnly=true
ExecStartPre=/bin/mkdir -p ${statedir}
ExecStartPre=/bin/chown -R redis:redis ${statedir}
ExecStart=/usr/bin/redis-server /etc/redis/redis.conf
ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/usr/bin/redis-cli shutdown
Restart=always

[Install]
WantedBy=multi-user.target
  1. vi를 bash로 다시 종료하십시오. 이제 서비스를 시작할 수 있어야합니다sudo systemctl start redis
  2. 포인트 4가 작동하지 않으면 적어도을 실행하여 수동으로 시작할 수 있습니다 sudo /usr/bin/redis-server /etc/redis/redis.conf.

편집해야 할 중요한 부분은

ExecStart = / usr / bin / redis-server /etc/redis/redis.conf

ExecStop = / usr / bin / redis-cli 셧다운

선이 가리 키지 않았습니다 usr/local/bin/foo./local


1

나는 같은 문제가 있었지만 원인은 달랐다.

dhcp 클라이언트가있는 VM에서 테스트를 위해 redis를 사용했습니다.

구성 /etc/redis/redis.conf이 잘못된 (오래된) 로컬 IP를 가리키고 있으므로 DHCP에서 할당 된 새 IP에 서비스를 바인딩 할 수 없습니다.

이러한 문제에 대한 로그는 다음과 같습니다.

mar 13 12:47:53 dev-vm systemd[1]: Failed to start Advanced key-value store.
mar 13 12:47:53 dev-vm systemd[1]: redis-server.service: Unit entered failed state.
mar 13 12:47:53 dev-vm systemd[1]: redis-server.service: Failed with result 'resources'.
mar 13 12:47:53 dev-vm systemd[1]: redis-server.service: Service hold-off time over, scheduling restart.
mar 13 12:47:53 dev-vm systemd[1]: Stopped Advanced key-value store.
mar 13 12:47:53 dev-vm systemd[1]: redis-server.service: Start request repeated too quickly.
mar 13 12:47:53 dev-vm systemd[1]: Failed to start Advanced key-value store.

0

어쩌면 이것을 시도해보십시오. 여기서 /lib/systemd/system/redis.service이것이 효과가 있는지 확인하기 위한 작동중인 구성 이 있습니다.

[Unit]
Description=Redis Datastore Server
After=network.target

[Service]
Type=forking
PIDFile=/var/run/redis/redis_6379
User=redis
Group=redis

Environment=statedir=/var/run/redis
PermissionsStartOnly=true
ExecStartPre=/bin/mkdir -p ${statedir}
ExecStartPre=/bin/chown -R redis:redis ${statedir}
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf 
ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always

[Install]
WantedBy=multi-user.target

그런 다음 구성 /etc/redis/redis.conf에 지정된 로그 파일을 점검하여 올바른 권한이 있는지 확인하십시오.


0

당신이 우분투를 사용하는 경우, 당신은이 있어야 supervised systemd에서 /etc/redis/redis.conf.


0

터미널을 열고 ifconfig 명령을 실행하면 192.168.0.109와 같은 IP 주소를 얻은 다음 sudo nano /etc/redis/redis.conf 명령을 실행하여 구성을 편집하십시오. nano는 편집기입니다. 원하는 다른 편집기를 사용한 다음 바인드를 검색하고 IP 주소를 입력하십시오.

bind 127.0.0.1 192.168.0.109 here 내 ip는 192.168.0.109입니다.이 명령으로 서버를 다시 시작하십시오 sudo systemctl restart redis.service 서버 상태를 확인하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.