Методы для операций над списками в значениях ключей
Redis Lists - это списки, содержащие строковые значения в порядке их добавления.
Новые значения можно добавлять в начало и конец списка.
По сути, Redis Lists - это то же, что и массивы в Perl.
Метод rpush
|
1 |
$r->rpush( $key, $value ); |
Добавление элемента в конец списка. Если заданный ключ еще не существует, он будет создан с пустым списком в качестве значения.
|
1 |
my $status = $redis->rpush('store.mobile.Nokia.N8', 'MTC' ); |
Метод lpush
|
1 |
$r->lpush( $key, $value ); |
Добавление элемента в начало списка.
|
1 |
$status = $redis->lpush('store.mobile.Nokia.N8', 'Euroset'); |
Метод llen
|
1 |
$r->llen( $key ); |
Получение числа - количества элементов списка.
|
1 2 |
my $key = $redis->llen('store.mobile.Nokia.N8'); print $key."\n"; # в данном случае выведет 6 |
Метод lrange
|
1 |
my @list = $r->lrange( $key, $start, $end ); |
Получение ряда элементов из списка.
$start - порядковый номер элемента, с которого начинается выборка. Номер первого элемента в списке - 0. $end - порядковый номер элемента, которым заканчивается выборка.
Можно задать $start и $end отрицательные значения. Тогда выборка элементов будет идти с конца списка. При этом, номер последнего элемента будет иметь значение -1. -2 - это предпоследний элемент, и т.д.
|
1 2 |
my @list = $redis->lrange('price.mobile.Nokia.N8', 0, 2); print join(" ", @list)."\n"; |
Метод ltrim
|
1 |
my $ok = $r->ltrim( $key, $start, $end ); |
Обрезка списка. $start и $end - порядковые номера элементов списка - означают границы обрезки. Будет обрезано все, что присутствовало в списке до элемента $start и после элемента $end .
Если для $start и $end заданы отрицательные значения, отсчет элементов будет идти с конца списка. При этом, номер последнего элемента будет иметь значение -1.
|
1 |
$status = $redis->ltrim('numbers', 0, 1 ); |
Метод lindex
|
1 |
$r->lindex( $key, $index ); |
Получение элемента из указанной позиции.
|
1 |
my $list_value = $redis->lindex('numbers', 2 ); |
Метод lset
|
1 |
$r->lset( $key, $index, $value ); |
Установка нового значения для элемента в указанной позиции.
|
1 |
$redis->lset('numbers', 2, '111'); |
Метод lrem
|
1 |
my $modified_count = $r->lrem( $key, $count, $value ); |
Удаление элементов из списка. Удаляются элементы, значение которых равно $value. Число удаляемых элементов задается $count.
Удаление элементов идет с начала списка. Если $count задано
отрицательное значение - удаление элементов будет идти с конца списка.
Если $count имеет значение 0 - из списка будут удалены все элементы, значение которых равно $value.
Метод возвращает число удаленных элементов.
|
1 2 3 4 |
# до lrem список содержал значения 13 12 111 111 112 111 my $modified_count = $redis->lrem('numbers', -1, '111'); # после lrem - 13 12 111 111 112 |
Метод lpop
|
1 |
my $value = $r->lpop( $key ); |
Получение первого элемента списка и его удаление.
|
1 2 3 4 |
# содержимое массива до lpop: 13 12 11 111 112 111 my $value = $redis->lpop('numbers'); # содержимое массива после lpop: 12 11 111 112 111 |
Метод rpop
|
1 |
my $value = $r->rpop( $key ); |
Получение последнего элемента списка и его удаление.
|
1 2 3 4 |
# содержимое массива до rpop: 12 11 111 112 111 my $value = $redis->lpop('numbers'); # содержимое массива после rpop: 12 11 111 112 |