Цитата:ты наверное про мемкэшед
Тут есть путаница. Есть мемкеш, а есть клиенские библиотеки для общения с мемкеш. Их две - либмемкеш и либмемкешед ;) Вторая просто поддерживает больше фич мемкеша, но блокировка - это все же фича мемкеша, а не библиотеки.
Цитата:скорее всего путаю раз ты завел об этом речь(кстати просвяти)
Атомарность - это единая неделимая операция относительно других процессов/потоков. Т.е. возьмем банальное - запись в файл. Атомарен он? Наверное, нет - если два процесса пишут в один файл одновременно - будет каша. А как же логи, неужели блокировки? Ан нет, оказывется, в linux запись в файл блока размером одной страницы памяти (4к обычно) - атомарен. Т.е. если мы добавляем в файл строчку небольшую - можно не блокировать, никто в середину этой строчки не влезет.
Другое дело, что не нужно путать просто атамарность, как термин, с ACID (где A == атомарность) - последнее относится к транзакционным СУБД, коим мемкеш не является.
Оптимистичные блокировки в мемкеше - это не атомарность.
Цитата:но разве и не хорошо что мне не надо знать эти тонкости
инкрементю значение и точно знаю что не будет гонки состояний
а если надо то и транзакции есть
Тонкости знать нужно. Прочитав значение из базы, будь то редис или мускуль, изменив его в ПО и записав - получаешь гонку. Ибо при чтении нужно явно назначить блокировку. А атомарно сделать инкримент можно и в мемкеше - отдельной операцией (т.е. http://php.net/manual/ru/memcached.increment.php)
Цитата:и персистентность...кстати что там будет с мемкэшед если сервак отключить
Так я и пишу - мемкеш, это тот механизм, которому персистентность не только не нужна - она вредна. Есть всякие решения для крупных систем, где могут быть проблемы на время разогрева кеша... но это исключения. Тема закрыта! Продолжение в теме " Обновление форума. Баги и ошибки пишем здесь - 2".
|