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 2018年

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再起動されたredisを即座に実行します。このケースでも同じエラーがスローされるのは誤解を招くものです。


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 start redis

今実行されているかどうかを確認します

$ sudo systemctl status 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

それでも、Rishik Rohanのhttps://askubuntu.com/a/918408/451682に従って、/ var / lib / redisディレクトリに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を実行して、サービスファイルを編集して、Redisします。

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

次のように表示されます:-

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

[サービス]ユーザー=ルートグループ=ルートExecStart = / usr / local / bin / redis-server /etc/redis/redis.conf ExecStop = / usr / local / bin / redis-cli shutdown再起動=常に

Type = Forking

[インストール] WantedBy = multi-user.target

変更します。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 "is Testing Redis"次に、mykeyの値を表示します:127.0.0.1:6379> get mykey "is Testing Redis" 127.0.0.1:6379> exit [root @ server]#

これで、redisが正常に起動して実行されました。

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

ありがとうございます。それでは、お元気で

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.