skoder
@skoder
web программист

Почему memcahce php сбрасывает данные?

Проверил,
подключаюсь так
$mem = new Memcache();
$mem->connect('127.0.0.1', 11211);
$mem->set('test'.rand(10000000), rand(10000000), false, 600);
$stats = $mem->getStats();
echo 'Capacity: ' . round((real) $stats["bytes"]/(1024*1024), 3) . 'MB/' . round((real) $stats["limit_maxbytes"]/(1024*1024), 3) . ' MB';

Код работает. пока bytes не достигнет некой величины
Capacity: 18.798MB/4098 MB всегда эта величина разная, от 10мб обычно
Потом полный сброс. Метод flush не использую. Только запись и чтение. Почему оно так себя ведет? И не лучше ли перейти на memcached?
Apache/2.2.31 (CentOS)
PHP/5.4.45

UPD
Проверил код на memcached
<?php
$m = new Memcached;
$m->addServer('127.0.0.1', 11211);
if (!$m->get('key')) {    
    $m->set('key', 1);
    echo 'flush';
} else {
    var_dump($m->get('key'));
}

Через 5-10 итераций, тоже сброс полный. Под него тоже 4гб выделено

UPD
Определенного успеха удалось достичь сделав pconnect место connect, т.е. использовать постоянное соединение.
Но тогда полный сброс все равно происходит, хоть уже на 26МБ, что уже гораздо лучше, но все равно не то
UPD
В итоге перешли на Redis, полет нормальный
  • Вопрос задан
  • 348 просмотров
Решения вопроса 1
@nrt
Лучше перейти на Redis.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
Что такое полный сброс?
Потом это когда?
У вас ставится на 10 минут lifetime, через 10 минут всё умирает. Что не так?
Ответ написан
Ваш ответ на вопрос

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

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