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>
  
  
  
  
