Perl Hackers Hub

第43回PerlでのRedis活用法(1)

本連載では第一線のPerlハッカーが回替わりで執筆していきます。今回のハッカーは一野瀬翔吾さんで、テーマは「PerlでのRedis活用法」です。

本稿のサンプルコードは、本誌サポートサイトから入手できます。

Redisとは

RedisはNoSQLやKVSKey-Value Storeと呼ばれるデータベースの一種で、一般的なKVSに比べ多彩なデータ型を備えているのが特長です。文字列型、リスト型、ハッシュ型、セット型、ソート済みセット型の5つの型があり、これらの型をうまく活用することで単純なKVS以上のさまざまな機能を実現できます。

また、インメモリで動作するため、高いパフォーマンスを得ることができます。必要に応じてデータをディスクへ書き出すこともできるので、万が一トラブルが発生しても安心です。

筆者が以前運営に携わっていたソーシャルゲームでも、Perlをメインに使ったゲームサーバからRedisを利用していました。今回はその運用経験から得られた、PerlからRedisを活用するための方法を紹介します。

PerlからRedisに接続してみる

Redisはシンプルなしくみになっているので、あれこれ説明するよりも実際に手を動かしたほうが理解しやすいでしょう。さっそくPerlからRedisに接続してみることにします。

Redisのインストール

まずはRedisをインストールしましょう。Redisの公式サイトからソースコードをダウンロードし、コンパイルします。

$ wget http://download.redis.io/releases/redis-3.2.7.tar.gz
$ tar xzf redis-3.2.7.tar.gz
$ cd redis-3.2.7
$ make

インストールが正常に完了していれば、次のコマンドでRedisを起動できます。

$ redis-server

Perl用クライアントのインストール

CPANにはRedisクライアントがいくつも公開されていますが、筆者のお勧めは拙作のRedis::Fastです。Redis::Fastは安定性と速度との両立を目的に開発しています。ネットワークトラブル時の再接続機能など、プロダクションで使われることを想定した機能を持っているのが特長です。また、Redisの公式ドキュメントで推奨されているRedis.pmと高いインタフェースの互換性を持っています。筆者が運営に携わっていたソーシャルゲームでもRedis.pmからRedis::Fastへの移行を行いましたが、機械的にモジュール名を置換するだけで済みました。

では、Redis::Fastをインストールしましょう。cpanm[1]を使っている人であれば、次のコマンドでRedis::Fastをインストールできます。

$ cpanm Redis::Fast

Redisに実際に接続する

必要なソフトウェアのインストールが終わったところで、接続するPerlのプログラムを書いてみましょう。⁠key」というキーに「value」という値をRedisに書き込み、書き込んだ結果をRedisから読み込むプログラムを作成します。

getset.pl
# Redisに接続する
use Redis::Fast;
my $redis = Redis::Fast->new(
    server => 'localhost:6379'
);

# キーに値を書き込む
$redis->set('key' => 'value');

# キーの値を読み込む
print $redis->get('key');

「value」が表示されれば接続成功です。

$ perl getset.pl
value

<続きの(2)こちら。>

WEB+DB PRESS

本誌最新号をチェック!
WEB+DB PRESS Vol.130

2022年8月24日発売
B5判/168ページ
定価1,628円
(本体1,480円+税10%)
ISBN978-4-297-13000-8

  • 特集1
    イミュータブルデータモデルで始める
    実践データモデリング

    業務の複雑さをシンプルに表現!
  • 特集2
    いまはじめるFlutter
    iOS/Android両対応アプリを開発してみよう
  • 特集3
    作って学ぶWeb3
    ブロックチェーン、スマートコントラクト、NFT

おすすめ記事

記事・ニュース一覧