Gagal memulai Redis Datastore Server (Ubuntu 16.04.1 LTS)

10

saya baru saja menginstal redis dan tidak berfungsi sama sekali ketika mencoba memulai layanan dengan perintah:

sudo service redis-server start

ini adalah hasil dari 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.

dan ini adalah hasil dari 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.
Kakashi
sumber

Jawaban:

14

Saya memiliki masalah yang sama dan tidak dapat menemukan solusi yang berfungsi di mana pun. Setelah beberapa pencarian, perbaikan berikut ini berhasil untuk saya (Ubuntu 16.04)

Di /etc/systemd/system/redis.service tambahkan berikut ini di bawah [Service]bagian.

Type=forking
Manolis Tsilikidis
sumber
1
Milik saya juga, terima kasih! Bagaimana Anda menemukan untuk menambahkan ini? Apa yang sebenarnya ia lakukan?
fpghost
4

Buka layanan Anda menggunakan editor apa pun.

vim /etc/systemd/system/redis.service

Lihatlah [Service]bagian Anda di ExecStarttambang adalah:

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

Jalankan perintah ini untuk melihat kesalahan apa yang terjadi. Milik saya merespons dengan ini:

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

Jadi saya baru saja memperbarui baris itu ke ini (di mana file konfigurasi saya yang sebenarnya)

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

Di situlah redis mulai cepat menempatkannya secara default ... :)

Kevin Upton
sumber
2

Saya menghadapi kesalahan yang sama. Tapi bagi saya alasannya sama sekali berbeda: Itu karena kesalahan ketik pada redis.conffile saya . Mengoreksi hal itu dan melakukan sudo systemctl restart redis-serverredis yang dimulai ulang secara instan. Sangat menyesatkan bahwa kesalahan yang sama juga terjadi pada kasus ini.

pembuat kode
sumber
2

Dalam kasus saya, direktori log ( /var/log/redis) yang saya sebutkan dalam /etc/redis/redis.conffile tidak ada

Bagaimana saya menemukan kesalahan

Mencoba

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

Ini adalah perintah yang sama yang ada di /etc/systemd/system/redis.servicefile saya

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

Larutan

1) Buat direktori log

sudo mkdir -p /var/log/redis

2) Berikan akses yang tepat untuk membuat dan menulis log

sudo chown redis:redis /var/log/redis

Cobalah untuk memulai layanan lagi

sudo service redis-server start 

atau

sudo service redis start
Yogesh Yadav
sumber
1

file redis.service tidak ada dalam direktori "/ etc / systemd / system /"

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

lalu salin dan tempel baris ini

[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

simpan dan tutup file ini

selanjutnya, ubah permisi direktori

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

selanjutnya jalankan server redis

$ sudo systemctl start redis

periksa apakah sudah berjalan sekarang

$ sudo systemctl status redis

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

Rishik Rohan
sumber
0

Silakan periksa redis.log. Anda harus melihat sesuatu seperti ini:

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

Karenanya periksa batas sistem Anda dan mungkin ajukan izin redisAOF Anda ( /var/lib/redis/*). Untuk batasan sistem, berikut ini adalah panduan yang bagus .

Thomas Schwärzl
sumber
0

Saya membutuhkan folder / var / lib / redis dan pengguna dan grup redis.

Saya menggunakan saran Kevin Upton https://askubuntu.com/a/981641/451682 untuk menemukan masalah saya: vim /etc/systemd/system/redis.servicemenuntun saya untuk /usr/local/bin/redis-server /etc/redis/redis.confmenanggapi dengan Can't chdir to '/var/lib/redis': No such file or directorymana saya membuat sudo mkdir /var/lib/redis.

Namun, kemudian, saya juga perlu membuat pengguna dan grup redis dan mencopetnya di direktori / var / lib / redis, mengikuti https://askubuntu.com/a/918408/451682 Rishik Rohan :

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

Terima kasih kalian berdua!

Bentuk Kehidupan Alien
sumber
0

setelah membuat semua conf coba perintah ini

sudo systemctl daemon-reload

sudo chown redis:redis /var/lib/redis

sudo chmod 770 /var/lib/redis

Dan kemudian

sudo systemctl start redis
Susaj S Nair
sumber
0

Langkah-langkah untuk mengatasi masalah itu: - + ============== + A. Tetapkan batas memori di redis.conf di baris angka 566

566 maxmemory 256mb 567 maxmemory-policy allkeys-lru

B. atur pengaturan memori kernel Linux menjadi 1:

$ sudo sysctl vm.overcommit_memory = 1

atau /etc/sysctl.conf dan ubah ke 1.

C. Mulai ulang server redis sekarang.

$ systemctl restart redis

Silakan periksa sekarang status Redis.

Dan jika masalah masih berlanjut maka Pergi dan edit dan redis file layanan.

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

Anda akan melihat seperti ini: -

[Unit] Deskripsi = Penyimpanan Data Memori Merah Setelah = network.target

[Layanan] Pengguna = root Group = root ExecStart = / usr / local / bin / redis-server /etc/redis/redis.conf ExecStop = / usr / local / bin / redis-cli shutdown Restart = selalu

Jenis = Forking

[Instal] WantedBy = multi-user.target

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

untuk

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

Sekarang, Mulai layanan redis

$ systemctl start redis

Sekarang Redis akan mulai tanpa memberikan kesalahan.

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

Menguji redis: -

[root @ server] # redis-cli 127.0.0.1:6379> ping Gunakan perintah echo untuk menggemakan string yang diberikan: 127.0.0.1:6379> echo "Tecmint sedang menguji Redis" Anda juga dapat menetapkan nilai kunci menggunakan perintah yang ditetapkan seperti ini: 127.0.0.1:6379> set mykey "sedang menguji Redis" Sekarang lihat nilai mykey: 127.0.0.1:6379> get mykey "sedang menguji Redis" 127.0.0.1:6379> keluar [root @ server] #

Sekarang redis mulai berhasil dan berjalan.

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

Terima kasih & Salam

Teknologi Everdata
sumber