今回は、Node.jsからRedisを使ったデータベースを操作するための基本的な方法について学習をしていきましょう!
Redisのデータベースを操作する方法を知りたい
データの保存・読み込み方法はどうやるの?
このような内容も含めて、本記事では以下のような構成で解説していきます!
- 【基礎】「Redis」とは?
- 【基礎】「Redis」の使い方
- 【実践】「Redis」のデータ操作
この記事で、Redisを使ったデータ操作方法をしっかり学習してスキルアップを目指していきましょう!
「Redis」とは?
それでは、まず最初にRedisについて基本的なおさらいからしておきましょう! Redisは、オープンソフトウェアで開発されているNoSQLデータベースであり、PCのメモリへデータを保存するため非常に高速な動作を実現するのが特徴です。
また、メモリは電源をOFFにするとデータが消滅しますが、Redisは定期的にスナップショットを取ることでデータの永続化を実現しています。ただし、メモリに保存するという仕様上あまり巨大なデータを扱うのは難しいので、ケースバイケースで利用していくのが一般的です。
今回は、Node.jsからこのRedisのデータベースを操作するための方法について一緒に見ていきましょう!
Node.jsでRedisを使う方法
この章では、Node.jsでRedisを扱うための準備を始めていきましょう! 主に、Redisの導入からNode.jsモジュールのインストール・使い方について学んでいきます。
Redisの導入方法
まず最初にデータベースを使えるようにするため、Redis本体をインストールしていきましょう!(すでに導入済みの方は次の章に進んでください)インストール方法は簡単で、wgetコマンドからRedis本体の圧縮ファイルをインストールして解凍するだけです。
$ wget http://download.redis.io/releases/redis-4.0.9.tar.gz $ tar xzf redis-4.0.9.tar.gz
解凍が完了したらRedisがインストールされているディレクトリに移動してmakeコマンドを実行します。
$ cd redis-4.0.9 $ make
これで導入は完了です。ちなみに、以下のように「redis-server」を実行すると対話形式でRedisデータベースを扱うことも可能です。
$ src/redis-server
redisモジュールの使い方
さて、Redisが使えるようになったところで、Node.jsから操作するための公式モジュールが提供されているので準備をしていきましょう。モジュールはnpmから簡単にインストールすることができます。
$ npm install redis
あとは、require()を使ってNode.jsからredisモジュールを使えるようにしましょう。
var redis = require('redis');
これで、Node.jsからRedisデータベースを操作するための準備が完了しました。次の章からは、いよいよRedisを利用してデータを実際に保存したり読み込んだりをしていきましょう!
「createClient()」でredisに接続する
この章では、実際にRedisのデータベースと接続する方法について見ていきましょう! もっとも基本的な方法としては、「createClient()」メソッドを利用して接続する方法です。
var client = redis.createClient();
この1行でデータベースと接続できるのですが、このままだと何か不具合があった時にわからない状態です。そこで、正常に接続された時と異常があった時に何らかのメッセージが出力されるようにしておくと良いでしょう。
次のサンプル例を見てください。
client.on('connect', function() { console.log('Redisに接続しました'); }); client.on('error', function (err) { console.log('次のエラーが発生しました:' + err); });
「on()」メソッドを利用すると、「connect」イベントで正常に接続された時の処理を行い、「error」イベントで異常があったときの処理を記述することが可能です。このようにプログラムを書いていれば、現在どのような状態なのかを把握できるのでオススメです。
Node.jsでRedisのデータ操作
この章では、Redisを使ったデータの保存・読み込みについて学習をしていきましょう。主に、「set() / get()」メソッドについて基本的な使い方を学習していきます。
「set()」でRedisデータベースに保存する
まずは、set()メソッドを使って任意のデータを保存する方法について見ていきましょう! set()の基本的な構文は次の通りです!
client.set(【キー】, 【値】)
第1引数にデータを参照するための「キー」を取り、第2引数にデータとなる「値」を設定します。簡単に言うと、オブジェクトデータのような形式でデータを保存するという感じに近いでしょう。
次のサンプル例を見てください!
client.set('mykey', 'Hello Redis');
この例では、「mykey」というキーに「Hello Redis」という文字列データを保存していますね。このように簡単な記述だけでRedisのデータベースへ格納することができるので便利です。
「get()」でRedisからデータを読み出す
今度は、get()メソッドを利用してデータベースへ格納したデータを読み込んでみましょう!基本的な使い方はset()とよく似ており、以下のような構文になります。
client.get(【キー】, 関数)
第1引数に読み込みたいデータの「キー」を指定し、第2引数へ読み込んだあとに実行したい関数を設定します。例えば、先ほど保存した「mykey」のデータを読み込むには次のように記述します。
client.get('mykey', function (error, result) { console.log(result); });
実行結果
Hello Redis
この例では、読み込みたいデータのキー「mykey」を指定し、そのデータの値となる「Hello Redis」という文字列を出力しています。
ただし、このままだと何らかの原因で読み込みに失敗した時にわからないので、エラー処理を次のように記述しておくと良いでしょう。
client.get('my test key', function (error, result) { if (error) { console.log(error); throw error; } console.log(result); });
get()のコールバック関数の引数にはエラー情報が格納されているので、これを利用したIF文の条件式を記述することでエラー処理を実現しています。これにより、エラーが発生した場合はコンソールに内容が出力されるようになります。
まとめ
今回は、Node.jsからRedisのデータベースを操作するための基本について学習をしました。最後に、もう一度ポイントをおさらいしておきましょう!
- Redisを扱うためには公式のモジュールを利用する
- createClient()メソッドを利用することで接続することができる
- set / getメソッドを利用するとデータを保存・読み込みできる
上記内容を踏まえて、ぜひ自分でもプログラミングに取り入れて活用できるように頑張りましょう!