SCINER
@SCINER

Redis. Как записать в ключ TimeStamp с сервера, где запущен Redis-сервер?

Простая задача, но ответа в интернете я так и не нашел.

К Redis-серверу производятся записи с других сайтов в интернете с использованием php-rediska.

Дате установленной на этих сайтах естественно доверять нельзя. Важна посекундная точность.
  • Вопрос задан
  • 2867 просмотров
Решения вопроса 1
@kastigar
А по поводу патчить Redis, если все-таки решитесь, вот описание протокола. Нужно создать специальный вид аргумента, с плэйсхолдерами. Я бы добавил, $PLACEHOLDER, получается что если после $ идет числовое значение, то это длина значения и мы его читаем с новой строки (то есть как происходит сейчас). Если же после $ идет нечисловая строка, то это плэйсхолдер. В данном случае, это может быть $TIMESTAMP, который говорит, что аргументом является текущий таймстэмп. Это также позволит добавить еще плэйсхололдеров в будущем (правда не могу придумать каких). Если же нужна большая гибкость, можно заюзать плэйсхолдеры прям в значениях, например что-то вроде %TIMESTAMP%, но это сделает код обратно не совместимым.
P.S. я бы все-таки смотрел в сторону NTP :)
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@kastigar
Насколько мне известно, Redis такого не умеет. Поэтому есть такие альтернативы:
— не давать открытый доступ к Redis, а предоставлять сервисы (достаточно трудоёмкая задачка и возможно лишняя, но более правильная, так как нет зависимости от бэкэнда; на самом деле все зависит от задачи)
— пропатчить Redis (легче первого, но будут проблемы, если патч не примут: придется ручками саппортить такую фичу)
— настроить синхронизацию времени с помощью NTP-клиента (самое простое, но если нет рута, то невозможно выполнить)
Ответ написан
Комментировать
SCINER
@SCINER Автор вопроса
Синхронизацию посекундную сделать практически нереально. обязательно будут какие-то накладки.
Каким образом можно пропатчить редис?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы