mitaichik
@mitaichik

Как сделать генератор последовательных чисел?

Всем привет.

Проект на php. Нужно сделать генератор последовательных чисел, грубо говоря - счетчик. Когда к нему обращаешься - он отдает число. Когда в следующий раз обращаешься - отдает предыдущее число + 1.

Сложность в том, что счетчик должен быть единым для всех php-процессов (как php-fpm процессов, так и cli). То есть к нему могут обращаться срезу несколько процессов. Каждому он должен отдавать новое число.

И должен сохранять состояние (например, в случае перезагрузки сервера).

Работать должен быстро - в секунду к нему будет около 100 запросов.

Понятно, что это задача не совсем для php. Подскажите, как реализовать такое? Есть ли готовое решение?
  • Вопрос задан
  • 1033 просмотра
Решения вопроса 1
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
redis.io/commands/incr
быстро, атомарно, минимальный оверхед
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
FanatPHP
@FanatPHP
Чебуратор тега РНР
// setup
$pdo->query("create table counter (id int auto_increment primary key)");
// use
$pdo->query("INSERT INTO counter VALUES (NULL)");
$counter = $pdo->lastInsertId();
Ответ написан
mitaichik
@mitaichik Автор вопроса
Похоже вот оно решение : атомарные операции в memcache: habrahabr.ru/post/43282
Ответ написан
Ваш ответ на вопрос

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

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