user-avatar
Today is Понедельник
21.05.2012

Tag: значение

19.09.2011

Использование REDIS и Redis php library. Часть 2 – использование библиотеки.

by admin — Categories: Веб разработка — Tags: , , , , , , 1 Comment

Далие следует рассказать про ключ значение. Для работы с redis используется понятие

«Ключ=>значение» как ассоциативный массив. Где ключём является не кий виртуальный массив данных (значений). Представьте себе таблицу

Ключ Значение 1
Значение 2
Значение 3
…..
Значение n

Существует несколько разных типов ключей.

  • Strings
  • Lists
  • Sets
  • Sorted sets
  • Hashes

Самый простой типа это Strings.

Ключ значения которого это просто строки или много строк.

//определим настройки соединения с сервером$options = array(

‘namespace’ => ‘Application_’,

‘servers’ => array(

array(‘host’ => ’127.0.0.1′, ‘port’ => 6379)

)

);

include_once («Rediska.php»); //подключаем библиотеку

$rediska = new Rediska($options);

$key = new Rediska_Key(‘time’);// так мы определим ключ с именем ‘time’

$time = time();

$key->setValue($time); //так мы запишем значение в ключ

echo $key->getValue(); // вывод текущего значения ключа

Замечу что если повторно выполнить запись в ключ setValue то значение перезаписывается.

И работать с данными в таких ключах стоит как со строковыми переменными.

 

Далее рассмотрим пример работы с типом Lists (списки)

$list = new Rediska_Key_List(‘list’); // так мы определим ключ с именем ‘list’

$list->append(‘Apple’);

$list->append(‘Orange’);

Добавляем вконец списка сначала элемент ‘Apple’ затем ‘Orange’

$newarray = $list->toArray(true); //Если установлен параметр в true это означает,

что массив будет иметь итератор

Далее мы можем работать с массивом и удалять элементы из списка.

foreach($newarray as $key=>$item){

$list->remove($item->value); //Таким образом мы удалим все элементы списка

}

Рассмотрим пример работы с типом ключей Sets и Sorted sets

Этот тип особенно интересен так как мы можем использовать так называемые индексы значений

более-ммение в полной мере. Предположим что нам нужно хранить время входа пользователя на сайт.

Создадим сет и будем поочерёдно добавлять логин пользователя и время в формате unix timestamp.

$users = new Rediska_Key_Set(«sets»);

$users->add(‘Alexandr’,time());

$users->add(‘Oleg’,time());

$users->add(‘Ivan’,time());

Таким образом мы сформируем список пользователей с дополнительным полем – индексом в

нашем случае меткой времени.

Теперь допустим нам нужно удалить из сета пользователей. $rows = $users->toArray(true);

foreach($rows as $key=>$item){

$users->remove($item->value); //Таким образом мы удалим все элементы списка

} //Теперь рассмотрим пример удаления пользователей с использованием индекса в нашем случае метки времени.

foreach($rows as $key=>$item){

$users->removeByScore(1258125887,1258135887); //Сдесь укажем диапазон если нужен один пользователь и мы знаем время то укажем 2 одинаковых значения

}

Отличие таких ключей от Sorted sets ключей в том, что в сортированных сетах есть сортировка по полю score Это полезно при выводе данных которые должны быть отсортированы по индексу.

Теперь рассмотрим тип ключей Hashes. Эти ключи подобны ассоциативным массивам в PHP.

$user = new Rediska_Key_Hash(‘user’);

$user->set(array(‘Name’ => ‘Alex’, ‘lastName’ => ‘Ivanov’, ‘viewed’ => 1));

$user->set(array(‘Name’ => ‘Oleg’, ‘lastName’ => ‘Petrov’, ‘viewed’ => 0));

//Так мы добавим массив в данный сет // показать такие данные можно через обычный цикл

foreach($user as $field => $value) {

print «$field => $value»;

}

Все возможные методы можно посмотреть сдесь

ЧАСТЬ 1 Использование REDIS и Redis php library

© 2012 asad`s page All rights reserved - Wallow theme v0.46.4 by ([][]) TwoBeers - Powered by WordPress - Have fun!