Главная > Технологии > Rediska — удобный PHP клиент для Redis

Rediska — удобный PHP клиент для Redis

RediskaRediska - удобный PHP клиент c внушительным списком возможностей для key-value базы Redis.



Основные возможности

Скоро

  • Теги - получения списка и удаление ключей по тегу.
  • Поддержка Ketama - быстрой consistent hashing библиотеки.
  • Оптимизация производительности.
  • Интеграция с другими фреймворками.
  • Учебное приложение - реальное приложение написанное с использованием Rediska с подробными комментариями.

Примеры работы

Создаем ключ на 2 минуты и сохраняем значение, если пусто:

<?php
// инциализация ключа
require_once 'Rediska/Key.php';
$key = new Rediska_Key('keyName', 60 * 2);

// старый способ
$value = $key->getValue();
if ($value === null) {
   $value = $exampleObject->getNewValue();
   $key->setValue($value);
}

// новый способ
$value = $key->getOrSetValue($exampleObject)->getNewValue();
?>

Работаем со списком:

<?php
// инициализация списка
require_once 'Rediska/Key/List.php';
$list = new Rediska_Key_List('list');

// добавляем новые элементы
$list[] = 'first element';
$list[] = 'second element';

// получаем элемент
echo $list[1]; #=> 'second element';

// Заменяем элемент
$list[0] = 'new first element';

// Получаем количество элментов
echo count($list); #=> 2

// Проверяем установлен ли элемент с указанным индексом
echo isset($list[0]); #=> true

// Итерация списка
foreach($list as $element) {
   echo $element;
}
?>

Работа с “пайплайнами” и выполнение команд на указанном сервере:

<?php
// инициализация
$options = array(
   'namespace' => 'MyApplication_',
	'servers' => array(
       'exapmleAlias' => array('host' => '127.0.0.1'),
	    array('host' => '127.0.0.1', 'port' => 6380)
	)
);
require_once 'Rediska.php';
$rediska = new Rediska($options);

// создать ключ на сервере "exampleAlias"
$rediska->on('exampleAlias')->set('a', 'b');

// выполяем серию команд в "пайплайне"
$result = $rediska->pipeline()->set('a', 1)
                                          ->increment('a', 10)
                                          ->rename('a', 'b')
                                          ->get('a')
                                          ->execute(); // выполнить команды и вернуть ответы
?>

Более подробную информацию и примеры читайте в документации.

Rediska - открытый проект: вы можете поучаствовать в разработке или стать автором интеграции с любимым фреймворком. Контакты авторов вы найдете на сайте проекта.

За обзорную статью большое спасибо Ивану Шумкову - создателю клиента Rediska.

Google Bookmarks Digg I.ua Ru-marks Ruspace Zakladok.net Reddit delicious Technorati Yahoo My Web News2.ru БобрДобр.ru Memori.ru rucity.com

Статьи по теме

Author: Den Golotyuk Categories: Технологии Tags: ,
  1. boom
    1 Февраль 2010 в 19:29 | #1

    rediska растет и раздувается - это может влиять на производительность. интересно сравнить ее с, например, реализаицей ввиде php-либы (http://github.com/owlient/phpredis)(общаться с сокетами на уровне С наверно же быстрее, чем на уровне PHP)

  2. 5 Март 2010 в 11:15 | #2

    Наверное. Если вам нужен просто set и get, то я думаю, что это лучший для вас выбор.

  1. Пока что нет уведомлений.