Работаю с Redis относительно недавно и вот возникла необходимость изменения одного ключа несколькими потоками одновременно. Для работы с Redis в php использую клиент Rediska. Еще когда читал мануал по Rediska видел раздел про транзакции, а сегодня пришло время почитать внимательнее.
Рубрика «rediska»
Как же работают транзакции в Redis
2013-01-09 в 12:29, admin, рубрики: nosql, php, redis, rediska, Веб-разработка, транзакции, метки: PHP, redis, rediska, транзакцииРеализация Lock’ов на сайтах Alawar
2012-11-28 в 6:00, admin, рубрики: alawar, alawar entertainment, lock, php, redis, rediska, yii, Блог компании «Alawar Entertainment», блокировка, Веб-разработка, метки: alawar, alawar entertainment, lock, PHP, redis, rediska, yii, блокировкаВведение
Сегодня мы поговорим о блокировках и покажем свою реализацию. Каждый из разработчиков не раз сталкивался с проблемой, когда необходимо обеспечить однопоточное использование какого-либо ресурса.
Часто для обеспечения такой блокировки используется схема с созданием специального файла, наличие которого определяет факт занятости того или иного ресурса.
Такой подход достаточно прост в реализации, но имеет ряд недостатков. Среди недостатков можно выделить:
- отсутствие 100% гарантии блокировки при большом количестве потоков;
- блокировка работает в рамках одного сервера;
- и самое неприятное – если процесс, который поставил блокировку почему-то её не снял, то остальные процессы так и не смогут получить доступ к этому ресурсу, пока вручную или каким-то другим способом эта блокировка не будет снята.
Когда нужны блокировки?
Каждый раз потребности разные, в основном они сводятся к исключению одновременных повторных действий, обеспечению последовательной работы с каким-то ресурсом, обеспечению равномерной нагрузки.
Читать полностью »