READONLY: READONLY: запись в реплику только для чтения невозможна
RedisЧто это значит?
Команда записи отправлена на узел-реплику (slave). Реплики по умолчанию доступны только для чтения; запись возможна только на master.
Почему возникает?
Клиент подключается к реплике вместо master, старый master стал репликой после failover, ошибочная маршрутизация на неверный узел в Sentinel/Cluster или балансировщик нагрузки, перенаправляющий запись на реплику.
Как исправить
Направляйте запросы на запись на узел master. Если используете Sentinel, запрашивайте текущий master у Sentinel (SENTINEL get-master-addr-by-name). В Cluster пишите в master нужного шарда. Настройте разделение чтения/записи в клиентской библиотеке. После failover обновите подключения, чтобы они указывали на новый master.
Ещё по этой СУБД
- OOMOOM: команда запрещена, когда используемая память > 'maxmemory'
- NOAUTHNOAUTH: требуется аутентификация
- WRONGPASSWRONGPASS: неверная пара имя пользователя-пароль или пользователь отключён
- MASTERDOWNMASTERDOWN: связь с MASTER разорвана, а replica-serve-stale-data имеет значение 'no'
- CLUSTERDOWNCLUSTERDOWN: кластер не работает / hash slot не обслуживается
- LOADINGLOADING: Redis загружает набор данных в память
- BUSYBUSY: Redis занят выполнением скрипта. Можно вызвать только SCRIPT KILL или SHUTDOWN NOSAVE