16.04.01 LTS на AWS - Redis більше не працює


10

Ми працювали redis-сервером на кількох екземплярах AWS EC2 Ubuntu (14.04.4 LTS) без проблем. Я запустив тестовий сервер, щоб спробувати оновити до 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.

Я спробував таке:

  • перезапустив сервер
  • запустіть наш скрипт розгортання, який включає перезапуск перегляду
  • використовується sudo apt-getдля видалення та перевстановлення redis-сервера
  • зробили встановлення двічі, один раз прийнявши новий /etc/redis/redis.confфайл із пакету, і один раз зберігаючи наш оригінальний файл

Будь-які пропозиції?


не відповідь, але може допомогти: Ви можете запустити redis як контейнер докера.
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.

Отже, що вам потрібно зробити, щоб переробити роботу 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. Покиньте, щоб повернутися до басу. Ви маєте змогу розпочати послугу вже заразsudo systemctl start redis
  2. Якщо точка 4 не працює, ви можете, принаймні, запустити її вручну, запустивши sudo /usr/bin/redis-server /etc/redis/redis.conf.

Важлива частина, яку мені довелося відредагувати, - це переконатися в цьому

ExecStart = / usr / bin / redis-сервер /etc/redis/redis.conf

ExecStop = / usr / bin / redis-cli вимкнення

рядки не вказували usr/local/bin/foo- потрібно видалити/local


1

У мене була така ж проблема, але причина була іншою.

Я використовував redis для тестування на VM з dhcp клієнтом.

Конфігурація /etc/redis/redis.confвказувала на неправильний (старий) локальний IP, і тому він не міг прив’язати послугу до нового призначеного IP від ​​DHCP.

Ось журнал такої проблеми:

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

Якщо ви використовуєте Ubuntu, ви повинні мати supervised systemdв /etc/redis/redis.conf.


0

Відкрийте свій термінал і запустіть команду ifconfig, тоді ви отримаєте свою ip адресу, як 192.168.0.109, а потім відредагуйте свою конфігурацію, запустивши команду sudo nano /etc/redis/redis.conf, тут nano є редактором. Ви можете використовувати будь-який інший редактор, що завгодно, тоді пошук прив’язуйте та вводите ip-адресу, як

прив'яжіть 127.0.0.1 192.168.0.109 тут мій ip 192.168.0.109 потім перезапустіть сервер за допомогою цієї команди sudo systemctl перезавантажте redis.service перевірити статус вашого сервера sudo systemctl status redis, тоді ви знайдете його активним

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.