Redis Hash - это неупорядоченный набор пар - "поле" и "значение". И "поле", и "значение", являются строками.
Работа с этими хэшами мало чем отличается от работы с обычными Perl-хэшами.
Методы для операций над хэшами в значениях ключей
Метод hset
|
1 |
$r->hset( $key, $field, $value ); |
Устанавливает для поля $field значение $value. Если поле уже существует - значение будет обновлено, и метод hset вернет значение "0". Если установлено новое поле - метод вернет "1".
Если указанного ключа $key еще не существует - он будет создан.
|
1 |
my $status = $redis->hset('store.programm.telnet_client', 'ssh', 'yes' ); |
Метод hget
|
1 |
$r->hget( $key, $field ); |
Получить значение для поля $field.
|
1 |
$value = $redis->hget('store.programm.telnet_client', 'ssh' ); |
Метод hmset
|
1 |
$r->hmset( $key, $field1, $value1, ..., $fieldN, $valueN, ); |
То же, что и метод hset, но устанавливает значения сразу для нескольких полей.
|
1 |
$status = $redis->hmset('store.programm.telnet_client', 'ssh', 'yes', 'telnet', 'yes' ); |
Метод hmget
|
1 |
$r->hmget( $key, field1, $fieldN ); |
То же, что и метод hget, но возвращает значения для нескольких заданных полей.
|
1 2 |
my @list = $redis->hmget('store.programm.telnet_client', 'ssh', 'telnet' ); print join(" ", @list)."\n"; # yes yes |
Метод hexists
|
1 |
$r->hexists( $key, $field ); |
Проверяет поле $field на наличие в хэше. Возвращает "1" или "0".
|
1 |
$status = $redis->hexists('store.programm.telnet_client', 'color' ); |
Метод hdel
|
1 |
$r->hdel( $key, $field ); |
Удаляет заданное поле их хэша. Возвращает "1" или "0".
|
1 |
$status = $redis->hdel('store.programm.telnet_client', 'color' ); |
Метод hlen
|
1 |
$r->hlen( $key ); |
Возвращает общее число элементов (пар) хэша.
|
1 |
$lenght = $redis->hlen('store.programm.telnet_client'); |
Метод hkeys
|
1 |
$r->hkeys( $key ); |
Возвращает список всех полей хэша.
|
1 2 |
@list = $redis->hkeys('store.programm.telnet_client'); print join(" ", @list)."\n"; # ssh telnet color |
Метод hvals
|
1 |
$r->hvals( $key ); |
Возвращает список значений всех полей хэша.
|
1 2 |
@list = $redis->hvals('store.programm.telnet_client'); print join(" ", @list)."\n"; # yes yes 256 |
Метод hgetall
|
1 |
$r->hgetall( $key ); |
Возвращает все поля и значения хэша.
|
1 2 3 |
my @list = $redis->hgetall('store.programm.telnet_client'); print join(" ", @list)."\n"; # ssh yes telnet yes color 256 |
Или так.
|
1 2 3 4 5 6 |
my $status = $redis->hset('store.programm.telnet_client', 'ssh', 'yes' ); $status=$redis->hmset('store.programm.telnet_client', 'telnet', 'yes', 'color', '256'); my %list = $redis->hgetall('store.programm.telnet_client'); print join(" ", keys %list)."\n"; # ssh telnet color print join(" ", values %list)."\n"; # yes yes 256 |