Redis入門:設定、構築、実行、貢献まで
Redisは、ディスクに永続化されるインメモリデータベースです。キーと値のデータモデルを採用しており、文字列、リスト、セット、ソート済みセット、ハッシュ、ストリーム、HyperLogLogs、ビットマップなど、多様な種類の値をサポートしています。この記事では、Redisの基本を理解し、使い始めるためのステップを分かりやすく解説します。
Redisとは?データ構造サーバーとしての魅力
Redisは、単なるデータベースとしてだけでなく、データ構造サーバーとしても捉えられます。サーバーとクライアントモデルを通じて、様々なプロセスが共有されたデータ構造にアクセスし、変更できます。
- 高速性と永続性: メモリ内で動作しながらも、ディスクへの保存を可能にしています。
- メモリ効率: 高度なプログラミング言語に比べ、メモリの使用量を抑えます。
- 豊富な機能: レプリケーション、耐久性の調整、クラスタリング、高可用性など、データベースとしての機能も充実しています。
Redisを始めるためのステップ
Redisは、Linux、OSX、OpenBSD、NetBSD、FreeBSDなど、多様な環境でコンパイルして使用できます。
Redisの構築
以下のコマンドで簡単に構築できます。
% make
TLSサポートを追加する場合は、OpenSSL開発ライブラリが必要です。
- Systemdサポート:
make USE_SYSTEMD=yes
- プログラム名のカスタマイズ:
make PROG_SUFFIX="-alt"
- 32ビットバイナリの構築:
make 32bit
Redisのテスト
構築後、以下のコマンドでテストすることをおすすめします。
% make test
TLSを有効にしたテストを実行するには、tcl-tls
が必要です。
ビルド問題の解決
make distclean
コマンドは、依存関係の再構築が必要な場合や、ビルドオプションがキャッシュされている場合に役立ちます。
32ビット/64ビットバイナリの切り替え時にも、make distclean
が必要です。32ビットバイナリ構築時のエラーについては、libc6-dev-i386パッケージのインストールや、CFLAGS、LDFLAGSの調整を試してみてください。
メモリアロケータの選択
MALLOC
環境変数を使用して、メモリアロケータを選択できます。デフォルトでは、Linuxシステムではjemalloc、それ以外ではlibc mallocが使用されます。
モノトニッククロック
プロセッサの内部命令クロックをサポートするには、以下のコマンドを使用します。
詳細なビルド出力
Redisの実行
デフォルト設定でRedisを実行するには、以下のコマンドを実行します。
特定のredis.confを使用するには、ファイルパスを指定します。
コマンドラインオプションを使用して、設定を動的に変更することも可能です。
Redisでのプレイ
redis-cliを使用して、Redisを操作できます。
使用可能なコマンドはhttps://redis.io/commandsで確認できます。
Redisのインストール
/usr/local/binにRedisバイナリをインストールするには、以下のコマンドを実行します。
別のディレクトリを指定する場合は、make PREFIX=/some/other/directory install
を使用します。
Ubuntu/Debianシステムでは、utils/install_server.sh
スクリプトを使用して、initスクリプトと設定ファイルを適切に設定できます。
コードへの貢献
Redisプロジェクトへのコード貢献は、Redis Software Grant and Contributor License Agreementの条件に基づきます。セキュリティ脆弱性については、SECURITY.mdを参照してください。
Redisの内部構造
Redisのソースコードは、C言語で記述されており、src
ディレクトリに格納されています。