Redis Datastore Server를 시작하지 못했습니다 (Ubuntu 16.04.1 LTS)


10

방금 redis를 설치했으며 명령으로 서비스를 시작하려고 할 때 전혀 작동하지 않습니다.

sudo service redis-server start

이 결과는 journalctl -xe다음 과 같습니다.

Subject: Unit redis-server.service has finished shutting down
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit redis-server.service has finished shutting down.
Mar 02 13:22:46 aaa-notebook systemd[1]: redis-server.service: Start request repeated too quickly.
Mar 02 13:22:46 aaa-notebook systemd[1]: Failed to start Redis Datastore Server.

그리고 이것은 다음의 결과입니다 systemctl status redis-server.service.

 redis-server.service - Redis Datastore Server
 Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
 Active: inactive (dead) (Result: resources) since Kam 2017-03-02 13:22:46 WIB; 5min ago
 Process: 12120 ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf (code=exited, status=0/SUCCESS)

Mar 02 13:22:46 aaa-notebook systemd[1]: Failed to start Redis Datastore Server.
Mar 02 13:22:46 aaaaa-notebook systemd[1]: redis-server.service: Unit entered failed state.
Mar 02 13:22:46 aaa-notebook systemd[1]: redis-server.service: Failed with result 'resources'.
Mar 02 13:22:46 aaa-notebook systemd[1]: redis-server.service: Service hold-off time over, scheduling restart.
Mar 02 13:22:46 aaa-notebook systemd[1]: Stopped Redis Datastore Server.
Mar 02 13:22:46 aaa-notebook systemd[1]: redis-server.service: Start request repeated too quickly.
Mar 02 13:22:46 aaa-notebook systemd[1]: Failed to start Redis Datastore Server.

답변:


14

나는 같은 문제가 있었고 어디서나 작동하는 솔루션을 찾을 수 없었습니다. 일부 검색 후 다음 수정 사항이 저에게 효과적이었습니다 (Ubuntu 16.04)

에서 /etc/systemd/system/redis.service 세 이하 다음을 추가 [Service]섹션을 참조하십시오.

Type=forking

1
나도 고마워! 이것을 추가하는 것을 어떻게 발견 했습니까? 실제로 무엇을합니까?
fpghost

4

편집기를 사용하여 서비스를 엽니 다.

vim /etc/systemd/system/redis.service

[Service]섹션을 살펴보십시오 ExecStart.

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

어떤 오류가 발생했는지 보려면이 명령을 실행하십시오. 내 대답은 다음과 같습니다.

 Fatal error, can't open config file '/etc/redis/redis.conf'

그래서 방금 그 줄을 이것으로 업데이트했습니다 (실제 설정 파일이있는 곳)

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

redis 빠른 시작은 기본적으로 어느 위치에 배치합니까 ... :)


2

나는 같은 오류에 직면했다. 그러나 나에게 그 이유는 완전히 달랐다. 그것은 내 redis.conf파일 의 오타 때문이었다 . 이를 수정하고 sudo systemctl restart redis-server다시 시작 하는 것은 즉시 이루어집니다. 이 경우에도 동일한 오류가 발생하는 것은 잘못된 것입니다.


2

필자의 경우 파일에서 /var/log/redis언급 한 로그 디렉토리 ( )가 /etc/redis/redis.conf존재하지 않았습니다.

오류를 찾는 방법

시험

/usr/local/bin/redis-server /etc/redis/redis.conf

이것은 내 /etc/systemd/system/redis.service파일에 있는 동일한 명령입니다

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

해결책

1) 로그 디렉토리 생성

sudo mkdir -p /var/log/redis

2) 로그 작성 및 쓰기에 대한 적절한 액세스 권한 부여

sudo chown redis:redis /var/log/redis

서비스를 다시 시작하십시오

sudo service redis-server start 

또는

sudo service redis start

1

"/ etc / systemd / system /"디렉토리에 redis.service 파일이 없습니다.

sudo nano /etc/systemd/system/redis.service

그런 다음이 줄을 복사하여 붙여 넣기

[Unit]
Description=Redis In-Memory Data Store
After=network.target

[Service]
User=redis
Group=redis
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always

[Install]
WantedBy=multi-user.target

이 파일을 저장하고 닫습니다

다음으로 디렉토리 허용을 수정하십시오.

$ sudo adduser --system --group --no-create-home redis
$ sudo chown redis:redis /var/lib/redis
$ sudo chmod 770 /var/lib/redis

다음으로 redis 서버를 시작하십시오

$ sudo systemctl 시작 redis

지금 실행 중인지 확인

$ sudo systemctl 상태 redis

참조 : https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-redis-on-ubuntu-16-04


0

를 확인하십시오 redis.log. 다음과 같이 보일 것입니다 :

41393:M 07 Jun 17:02:19.034 # You requested maxclients of 10000 requiring at least 10032 max file descriptors.
41393:M 07 Jun 17:02:19.034 # Server can't set maximum open files to 10032 because of OS error: Operation not permitted.
41393:M 07 Jun 17:02:19.034 # Current maximum open files is 4096. maxclients has been reduced to 4064 to compensate for low ulimit. If you need higher maxclients increase 'ulimit -n'.
41393:M 07 Jun 17:02:19.034 # Can't open the append-only file: Read-only file system

따라서 redisAOF ( /var/lib/redis/*) 의 시스템 제한 및 파일 권한을 확인하십시오 . 시스템의 한계를 들어, 다음입니다 좋은 가이드 .


0

/ var / lib / redis 폴더와 redis 사용자 및 그룹이 모두 필요했습니다.

나는 케빈 업튼의 사용 https://askubuntu.com/a/981641/451682 내 문제를 찾아 조언을 : vim /etc/systemd/system/redis.service에 저를지도 /usr/local/bin/redis-server /etc/redis/redis.conf로 응답하는 Can't chdir to '/var/lib/redis': No such file or directory내가 함께 만든 sudo mkdir /var/lib/redis.

그런 다음 Riisk Rohan의 https://askubuntu.com/a/918408/451682에 따라 redis 사용자 및 그룹을 작성하여 / var / lib / redis 디렉토리에 표시해야했습니다 .

sudo adduser --system --group --no-create-home redis
sudo chown redis:redis /var/lib/redis
sudo chmod 770 /var/lib/redis

고마워요!


0

모든 conf 가이 명령을 시도한 후

sudo systemctl daemon-reload

sudo chown redis:redis /var/lib/redis

sudo chmod 770 /var/lib/redis

그리고 후에

sudo systemctl start redis

0

이 문제를 해결하는 단계 :-+ ============== + A. 566 번호 줄에서 redis.conf의 메모리 제한을 설정하십시오.

566 maxmemory 256mb 567 maxmemory-policy allkeys-lru

B. Linux 커널 오버 커밋 메모리 설정을 1로 설정하십시오.

$ sudo sysctl vm.overcommit_memory = 1

또는 /etc/sysctl.conf를 1로 변경하십시오.

C. 지금 redis 서버를 다시 시작하십시오.

$ systemctl restart redis

지금 Redis 상태를 확인하십시오.

여전히 문제가 지속되면 Go and edit and redis 서비스 파일입니다.

========= vi /etc/systemd/system/redis.service

다음과 같이 보일 것입니다 :-

[Unit] Description = 네트워크 내 대상 데이터 저장소 = network.target

[서비스] 사용자 = 루트 그룹 = 루트 ExecStart = / usr / local / bin / redis-server /etc/redis/redis.conf ExecStop = / usr / local / bin / redis-cli shutdown Restart = 항상

유형 = 포킹

[설치] WantedBy = 다중 사용자. 대상

ExecStart = / usr / local / bin / redis-server /etc/redis/redis.conf로 변경하십시오.

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

이제 redis 서비스를 시작하십시오

$ systemctl start redis

이제 Redis가 오류없이 시작됩니다.

+ ============== +

redis 테스트 :-

[root @ server] # redis-cli 127.0.0.1:6379> ping echo 명령을 사용하여 지정된 문자열을 에코합니다 : 127.0.0.1:6379> echo "Tecmint is testing Redis"set 명령을 사용하여 키 값을 설정할 수도 있습니다. 다음과 같이 : 127.0.0.1:6379> set mykey "Redis를 테스트 중입니다"이제 mykey의 값을보십시오.

이제 redis가 성공적으로 시작되어 실행 중입니다.

+ ================== +

감사와 안부

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