Не удалось запустить сервер хранилища данных Redis (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 QuickStart помещает его по умолчанию ... :)

Кевин Аптон
источник
2

Я столкнулся с той же ошибкой. Но для меня причина была совершенно другая: это было из-за опечатки в моем redis.confфайле. Исправляя это и делая sudo systemctl restart redis-serverперезапущенный redis немедленно. Это вводит в заблуждение, что та же самая ошибка выдается и для этого случая.

creativcoder
источник
2

В моем случае директории log ( /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

Файл redis.service отсутствует в каталоге "/ etc / systemd / system /"

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.

Затем мне также нужно было создать пользователя и группу redis и добавить их в каталог / var / lib / redis, следуя https://askubuntu.com/a/918408/451682 Ришика Рохана :

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. Установите ограничение памяти в redis.conf в строке 566 номеров.

566 maxmemory 256mb 567 maxmemory-policy allkeys-lru

B. Установите для параметра памяти overcommit ядра Linux значение 1:

$ sudo sysctl vm.overcommit_memory = 1

или /etc/sysctl.conf и измените его на 1.

C. Перезагрузите сервер Redis сейчас.

$ systemctl restart redis

Пожалуйста, проверьте сейчас статус Redis.

А если проблема не устранена, перейдите в раздел «Редактирование и повторное создание служебного файла».

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

Вы увидите так:

[Устройство] Описание = Redis In-Memory Store Data After = network.target

[Служба] Пользователь = корневая группа = root ExecStart = / usr / local / bin / redis-server /etc/redis/redis.conf ExecStop = / usr / local / bin / redis-cli shutdown Restart = всегда

Тип = Разветвление

[Установить] 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 проверяет Redis". Вы также можете установить значение ключа, используя команду set как это: 127.0.0.1:6379> set mykey "проверяет Redis" Теперь посмотрите значение mykey: 127.0.0.1:6379> get mykey "проверяет Redis" 127.0.0.1:6379> exit [root @ server] #

Теперь Redis запущен успешно и работает.

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

С уважением

Эвердата технологии
источник