16.04.01 LTS pada AWS - Redis tidak lagi berfungsi

10

Kami telah menjalankan redis-server pada sejumlah instance Ubuntu AWS EC2 (14.04.4 LTS) tanpa masalah. Saya memutar server uji untuk mencoba meningkatkan ke Ubuntu 16.04.1 LTS, dan sekarang redis tidak akan berfungsi.

Jika saya mencoba memulai redis secara manual, saya mendapatkan ini:

~$ 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.

Info kesalahan:

~$ 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.

Saya sudah mencoba yang berikut ini:

  • me-restart server
  • jalankan skrip penerapan kami, yang mencakup redis restart
  • digunakan sudo apt-getuntuk menghapus dan menginstal ulang redis-server
  • melakukan instalasi dua kali, sekali menerima /etc/redis/redis.conffile baru dari paket, dan sekali menyimpan file asli kami

Ada saran?

John Feltz
sumber
bukan jawaban, tetapi mungkin membantu: Anda dapat menjalankan redis sebagai wadah buruh pelabuhan.
pLumo

Jawaban:

5

Saya menginstal redis menggunakan apt-get install redis-server

Masalahnya bagi saya: tutorial yang saya temukan misalnya. jawaban lain untuk pertanyaan ini mengasumsikan bahwa redis binari berada di /usr/local/bin.

Pada instalasi saya mereka berada di /usr/binjadi perbaikan untuk itu berubah /etc/systemd/system/redis.serviceuntuk mencerminkan ini.

Pada titik ini saya dapat mulai /usr/bin/redis-server /etc/redis/redis.conf secara manual dan berhasil dijalankan sudo systemctl start redis.

Jadi yang perlu Anda lakukan agar redis bekerja pada 16.04 adalah:

  1. Pastikan Anda menginstal menggunakan apt-get install redis-server, jangan mengunduh tar, lalu buat & instal.
  2. Buat atau edit layanan redis dengan menjalankan sudo vi /etc/systemd/system/redis.service
  3. Edit untuk terlihat seperti ini kemudian simpan:
[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. Keluar vi kembali ke bash. Anda harus dapat memulai layanan sekarang dengansudo systemctl start redis
  2. Jika poin 4 tidak berfungsi, Anda mungkin setidaknya dapat memulainya secara manual dengan menjalankan sudo /usr/bin/redis-server /etc/redis/redis.conf.

Bagian penting yang harus saya edit adalah memastikan hal itu

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

ExecStop = / usr / bin / redis-cli shutdown

baris tidak menunjuk ke usr/local/bin/foo- perlu menghapus/local

Scottmeup
sumber
1

Saya memiliki masalah yang sama tetapi penyebabnya berbeda.

Saya menggunakan redis untuk pengujian pada VM dengan klien dhcp.

Konfigurasi /etc/redis/redis.confmenunjuk ke IP lokal (lama) yang salah dan karenanya tidak dapat mengikat layanan ke IP baru yang ditugaskan dari DHCP.

Berikut ini adalah log untuk masalah tersebut:

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.
Stefano Coletta
sumber
0

Mungkin coba ini, ini adalah konfigurasi yang berfungsi untuk /lib/systemd/system/redis.servicemelihat apakah ini mungkin bekerja untuk Anda.

[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

Kemudian periksa file log yang ditentukan dalam konfigurasi /etc/redis/redis.confuntuk memastikan Anda memiliki izin yang benar.

ognjen
sumber
0

Jika Anda menggunakan Ubuntu, Anda harus supervised systemdmasuk /etc/redis/redis.conf.

Amir
sumber
0

Buka terminal Anda dan jalankan perintah ifconfig maka Anda akan mendapatkan alamat ip Anda seperti 192.168.0.109 lalu edit konfigurasi Anda dengan menjalankan perintah sudo nano /etc/redis/redis.conf di sini nano adalah editor. Anda dapat menggunakan editor lain apa pun yang Anda inginkan lalu cari bind dan masukkan alamat ip Anda

bind 127.0.0.1 192.168.0.109 di sini ip saya adalah 192.168.0.109 kemudian restart server Anda dengan perintah ini sudo systemctl restart redis.service periksa status server Anda sudo systemctl status redis maka Anda akan menemukannya aktif

Sadi
sumber