Как обработать определённые значения memcache?

Добрый день.
Я вношу в кеш с ключами people_1111, people_1112,people_1113...
а также data_1111, data_1112,data_1113...
Мне нужно выбрать значения только относительно people_ и произвести с каждым из них вычисления либо получить массив ключ/значение.
Как это реализовать?
Спасибо
  • Вопрос задан
  • 2248 просмотров
Пригласить эксперта
Ответы на вопрос 1
ezh
@ezh
<?php
class People implements IteratorAggregate {
    private $c;
    public function __construct($host, $port) {
        // TODO handle errors
        $this->c = memcache_connect($host, $port);
    }
    public function add($id, $value) {
        memcache_set($this->c, "people_$id", $value);
        // TODO race condition
        $list = memcache_get($this->c, "peoples");
        $list[$id] = true;
        memcache_set($this->c, "peoples", $list);
    }
    public function getIterator() {
        $list = memcache_get($this->c, "peoples");
        foreach ($list as $item => $_) yield memcache_get($this->c, "people_$item");
    }
}
$People = new People('localhost', 11211);
$People->add(1112, "first");
$People->add(1115, shell_exec("uname -v"));
$People->add(2000, microtime(true));
foreach ($People as $item) {
    echo $item, "\n";
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы