Redis

提供: ArchWiki
ナビゲーションに移動 検索に移動

Wikipedia:Redis より:

Redis はデータ構造サーバーを実装するソフトウェアプロジェクトです。オープンソースでありネットワーク上にデプロイされ、オンメモリで動作し、冗長性を持ってキーを保存します。

インストール

redis パッケージをインストールしてください。

その後 redis.service起動有効化してください。

設定

Redis の設定ファイルは /etc/redis.conf です。豊富なコメントが付いています。

  • デフォルトでは、"bind" 設定ディレクティブが指定されていないため、Redis は全てのネットワークインターフェイスからの接続を許可します。以下のように設定することで特定のホストからの接続だけを許可できます:
bind 127.0.0.1
  • デフォルトでは特定のポート (6379) からの接続だけを許可していますが、port 0 を指定することで TCP の listen を無効にできます:
port 6379 

ソケットを使う

Redis で Unix ソケットを使うようにすることで TCP/IP を使う場合と比べて高い性能を発揮させることができます [1]

Unix ソケットを有効にするには /etc/redis.conf に以下の変更を加えてください:

  • Redis ソケットパスを有効化・更新:
unixsocket /run/redis/redis.sock
  • ソケットのパーミッションを全て redis グループのメンバーに設定:
unixsocketperm 770
  • ソケットを保存するためのディレクトリを作成:
# mkdir /run/redis
# chown redis:redis /run/redis
# chmod 755 /run/redis
  • ソケットを保存するためのディレクトリを設定する一時ファイルを作成:
/etc/tmpfiles.d/redis.conf
d /run/redis 0755 redis redis -
  • ソケットにアクセス・使用できるようにユーザー (例: git, http) を redis グループに追加。

最後に redis.service を再起動してください。

トラブルシューティング

Transparent Huge Pages (THP) の警告

you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. という警告メッセージが表示される場合、機能を無効化することで、警告を消すことができます:

/etc/tmpfiles.d/redis.conf
w /sys/kernel/mm/transparent_hugepage/enabled - - - - never
w /sys/kernel/mm/transparent_hugepage/defrag - - - - never

TCP バックログの警告

The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128. という警告メッセージを解決するには、値を増やしてください:

/etc/sysctl.d/99-sysctl.conf
net.core.somaxconn=512

overcommit_memory が 0 に設定されているという警告

overcommit_memory is set to 0! Background save may fail under low memory condition という警告メッセージを解決するには:

/etc/sysctl.d/99-sysctl.conf
vm.overcommit_memory=1