RedisはスケーラブルなKVS(Key Value Store)です。よく比較対象とされるmemcachedに比べると、Redisはスケーラブルであり多数のデータ型を備えています。このページではRedisのインストール方法と簡単な動作確認方法をまとめます。
前提
公式ドキュメント
参考になる公式ドキュメントを以下に示します。
- Installing Redis
- Install Redis on Linux
- Install Redis on macOS
- Install Redis on Windows
- Windows Server 2022 に WSL をインストールする
動作確認済環境
- Rocky Linux 8.6
- Ubuntu 18.04
- MacOS 12.6.1
- Windows Server 2022
- Redis 5.0.3 (Rocky Linux パッケージ インストール)
- Redis 7.0.0 (MacOS brew インストール)
- Redis 7.0.5 (上記以外)
パッケージ インストール
Redhat系 Linuxの場合
インストール操作
RedisはほとんどのLinuxのディストリビューションに対してパッケージとして提供されています。Redhat系Linuxの場合は、以下のようなdnfコマンドでインストール可能です。
dnf install redis
パッケージインストールと同時にsystemdも設定されますので、以下のようなsystemctlコマンドで自動起動を設定できます。
systemctl enable redis.service --now
動作確認
Redisはデフォルトでtcp6379でListenします。tcp6379がLISTEN状態である事を確認します。
[root@linux010 ~]# netstat -ano | grep 6379 tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN off (0.00/0/0) [root@linux010 ~]#
パッケージインストールと同時に、redis-cliと呼ばれるコマンドラインツールがインストールされます。以下のように引数なしでredis-cliを実行すると、127.0.0.1のtcp6379に対して接続を試みます。
[root@linux010 ~]# redis-cli 127.0.0.1:6379>
簡単なデータの書き込みをテストしてみましょう。以下のような操作で、キー「key01」に対して値「value01」を書き込みます。
127.0.0.1:6379> SET key01 value01 OK 127.0.0.1:6379>
以下のような操作でキー「key01」に対して設定された値を確認できます。
127.0.0.1:6379> GET key01 "value01" 127.0.0.1:6379>
以下操作で、redis-cliを終了します。
127.0.0.1:6379> exit [root@linux010 ~]#
Ubuntu/Debian Linuxの場合
インストール操作
Redis Serverをインストールします
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list sudo apt-get update sudo apt-get install redis
動作確認
Redis Serverへの疎通を確認します
azureuser@linux010:~$ redis-cli 127.0.0.1:6379> ping PONG 127.0.0.1:6379> exit azureuser@linux010:~$
MacOSの場合
インストール操作
brewコマンドでRedis Serverをインストールします
brew install redis
Redis Serverを起動します
brew services start
動作確認
Redis Serverへの疎通を確認します
admin@mac19 doc % redis-cli 127.0.0.1:6379> ping PONG 127.0.0.1:6379>
Windowsの場合
WSL2のインストール
Windows OSにRedis Serverをインストールするには、WSL2が必要です。WSL2のインストール方法はWindowsのバージョンによって異なりますが、Windows Server 2022の場合は、コマンドプロンプトまたはPowerShellに以下コマンドを入力するだけでインストールが可能です。
Windows Server 2022以外でWSL2を有効にする方法は「Windows Server 2022 に WSL をインストールする」を参照ください
wsl --install
コマンド実行後にOS再起動を求められますので、画面下の再起動ボタンからWindows Serverの再起動を試みます。
Ubuntuの起動
Windows Serverの再起動後、Ubuntuが自動的に起動されます。Ubuntuが起動するまでしばらくお待ちください。
Ubuntu起動後、初期ユーザ名と初期パスワードを入力します。任意の値で差し支えございません。
Redis Serverのインストール
Ubuntuに対して以下のコマンドを実行し、Redis Serverをインストールします。
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list sudo apt-get update sudo apt-get install redis
Redis Serverを起動します。
sudo service redis-server start
Redis Serverへの疎通を確認します。
user01@WIN-T43K7QIRSJF:~$ redis-cli 127.0.0.1:6379> ping PONG 127.0.0.1:6379> exit user01@WIN-T43K7QIRSJF:~$
ソース インストール
Redhat系 Linuxの場合
インストール操作
Redisインストール操作に必要なパッケージ群をインストールします。
group install "Development Tools"
ソースをダウンロードします。以下の操作例は最新の安定版をダウンロードする操作ですが、「redis-hashes git repository」から特定バージョンのソースをダウンロードする事もできます。
wget https://download.redis.io/redis-stable.tar.gz
ソースをコンパイルします。
tar -xzvf redis-stable.tar.gz cd redis-stable make
操作ログは以下の通りです。”LINK redis-server”などのログが出力される事を確認してください。
[root@linux010 redis-stable]# make <omitted> CC script.o CC functions.o CC function_lua.o CC commands.o LINK redis-server INSTALL redis-sentinel CC redis-cli.o CC redisassert.o CC cli_common.o LINK redis-cli CC redis-benchmark.o LINK redis-benchmark INSTALL redis-check-rdb INSTALL redis-check-aof Hint: It's a good idea to run 'make test' ;) make[1]: Leaving directory '/root/redis-stable/src' [root@linux010 redis-stable]#
redisをインストールします。
make install
インストールが完了すると、/usr/local/bin/以下にredis-serverなどがインストールされます。
[root@linux010 ~]# ls -l /usr/local/bin/ total 27920 -rwxr-xr-x. 1 root root 6978920 Nov 19 13:06 redis-benchmark lrwxrwxrwx. 1 root root 12 Nov 19 13:06 redis-check-aof -> redis-server lrwxrwxrwx. 1 root root 12 Nov 19 13:06 redis-check-rdb -> redis-server -rwxr-xr-x. 1 root root 7238208 Nov 19 13:06 redis-cli lrwxrwxrwx. 1 root root 12 Nov 19 13:06 redis-sentinel -> redis-server -rwxr-xr-x. 1 root root 14367728 Nov 19 13:06 redis-server [root@linux010 ~]#
動作確認
以下のような操作でredis-serverを起動します。
[root@linux010 ~]# redis-server & [1] 38031 [root@linux010 ~]# 38031:C 19 Nov 2022 13:10:07.453 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo 38031:C 19 Nov 2022 13:10:07.453 # Redis version=7.0.5, bits=64, commit=00000000, modified=0, pid=38031, just started 38031:C 19 Nov 2022 13:10:07.453 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf 38031:M 19 Nov 2022 13:10:07.453 * Increased maximum number of open files to 10032 (it was originally set to 1024). 38031:M 19 Nov 2022 13:10:07.453 * monotonic clock: POSIX clock_gettime _._ _.-``__ ''-._ _.-`` `. `_. ''-._ Redis 7.0.5 (00000000/0) 64 bit .-`` .-```. ```\/ _.,_ ''-._ ( ' , .-` | `, ) Running in standalone mode |`-._`-...-` __...-.``-._|'` _.-'| Port: 6379 | `-._ `._ / _.-' | PID: 38031 `-._ `-._ `-./ _.-' _.-' |`-._`-._ `-.__.-' _.-'_.-'| | `-._`-._ _.-'_.-' | https://redis.io `-._ `-._`-.__.-'_.-' _.-' |`-._`-._ `-.__.-' _.-'_.-'| | `-._`-._ _.-'_.-' | `-._ `-._`-.__.-'_.-' _.-' `-._ `-.__.-' _.-' `-._ _.-' `-.__.-' 38031:M 19 Nov 2022 13:10:07.454 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128. 38031:M 19 Nov 2022 13:10:07.454 # Server initialized 38031:M 19 Nov 2022 13:10:07.454 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect. 38031:M 19 Nov 2022 13:10:07.454 * Loading RDB produced by version 7.0.5 38031:M 19 Nov 2022 13:10:07.454 * RDB age 3 seconds 38031:M 19 Nov 2022 13:10:07.454 * RDB memory usage when created 0.82 Mb 38031:M 19 Nov 2022 13:10:07.454 * Done loading RDB, keys loaded: 0, keys expired: 0. 38031:M 19 Nov 2022 13:10:07.454 * DB loaded from disk: 0.000 seconds 38031:M 19 Nov 2022 13:10:07.454 * Ready to accept connections [root@linux010 ~]#
redis-cliコマンドで接続可能な事を確認します。
[root@linux010 ~]# redis-cli 127.0.0.1:6379>