Краткая справка
Redis - это нереляционная база данных.
Используется в проектах с большими объемами информации и необходимостью быстрого доступа к ней.
Для хранения информации в Redis используются пары - ключ и значение. Ключ должен быть простой строкой, без пробелов и символов переноса строки. Значение ключа может иметь тип данных: строка, список, не упорядоченное множество, упорядоченное множество или хэш.
Работать с Redis значительно проще, чем с реляционными БД. Основной алгоритм работы: установить соединение с БД, получить значения определенных ключей, установить значения для ключей, закрыть соединение. И никаких вам INNER JOIN. Все возможные сортировки, отбор информации, осуществляется самим клиентом после получения данных.
Для работы с Redis в Perl, существует специальный модуль - Redis.pm - search.cpan.org: Redis.pm
Методы модуля Redis.pm
Краткий обзор возможностей perl-модуля Redis.pm для работы с Redis БД.
Подключение к БД
- Метод new - создание объекта - соединения с БД
- Метод ping - проверка соединения, готовности БД к работе
- Метод info - получение информации о сервере Redis
- Метод quit - разрыв соединения с БД
Пример:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#!/usr/local/bin/perl use Redis; my $redis = Redis->new( server => 'localhost:6379', encoding => undef, ); $redis->ping || die "redis do not answer"; my $redis_info_hash = $redis->info; foreach (keys %{$redis_info_hash}) { print $_.": ".$redis_info_hash->{$_}."\n"; } $redis->quit; |
Ответ:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
%perl redis.pl last_save_time: 1302160813 bgsave_in_progress: 0 vm_enabled: 0 uptime_in_seconds: 3015123 pubsub_channels: 0 hash_max_zipmap_entries: 64 total_connections_received: 85496 redis_version: 2.0.4 process_id: 69098 total_commands_processed: 818953 hash_max_zipmap_value: 512 redis_git_dirty: 0 used_memory: 3562000 blocked_clients: 0 connected_clients: 1 ... |
Команды, применимые к любому ключу
Метод del
Удаление ключа из БД со всеми его значениями
|
1 2 |
my $status = $redis->del('price.mobile.Nokia.N8'); print $status."\n"; |
Метод exists
Проверка существования ключа
|
1 2 3 |
my $status = $redis->exists('price.mobile.Nokia.N8'); print $status."\n"; # вывод: 1 или 0 - если заданный ключ отсутствует |
Метод dbsize
Получение общего числа ключей, существующих в данной БД
|
1 2 3 |
my $keys = $redis->dbsize; print $keys."\n"; # вывод: 44187 |
Метод randomkey
Получение случайного ключа из существующих.
|
1 2 3 |
my $key = $redis->randomkey; print $key; # вывод: price.mobile.Nokia.6700_Classic |
Метод type
Получение типа значения, сохранённого в ключе.
|
1 2 3 |
my $key = $redis->type('price.mobile.Nokia.N8'); print $key."\n"; # вывод: string |
Метод rename
Переименование ключа.
|
1 2 |
$status = $redis->rename( 'price.mobile.Nokia.N8', 'price.mobile.Nokia.N8Duos' ); print $status."\n"; |