「Redis」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(同期)
 
24行目: 24行目:
   
 
* Redis ソケットパスを有効化・更新:
 
* Redis ソケットパスを有効化・更新:
unixsocket /var/run/redis/redis.sock
+
unixsocket /run/redis/redis.sock
   
* ソケットのパーミッションを全て redis [[グループ]]のメンバーに設定:
+
* ソケットのパーミッションを全て ''redis'' [[グループ]]のメンバーに設定:
 
unixsocketperm 770
 
unixsocketperm 770
   
 
* ソケットを保存するためのディレクトリを作成:
 
* ソケットを保存するためのディレクトリを作成:
# mkdir /var/run/redis
+
# mkdir /run/redis
# chown redis:redis /var/run/redis
+
# chown redis:redis /run/redis
# chmod 755 /var/run/redis
+
# chmod 755 /run/redis
   
* ソケットを保存するためのディレクトリを設定:
+
* ソケットを保存するためのディレクトリを設定する[[systemd#一時ファイル|一時ファイル]]を作成:
   
 
{{hc|/etc/tmpfiles.d/redis.conf|2=
 
{{hc|/etc/tmpfiles.d/redis.conf|2=
d /var/run/redis 0755 redis redis -
+
d /run/redis 0755 redis redis -
 
}}
 
}}
   
43行目: 43行目:
   
 
最後に {{ic|redis.service}} を再起動してください。
 
最後に {{ic|redis.service}} を再起動してください。
  +
  +
== トラブルシューティング ==
  +
  +
=== Transparent Huge Pages (THP) の警告 ===
  +
  +
{{ic|you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis.}} という警告メッセージが表示される場合、機能を無効化することで、警告を消すことができます:
  +
{{hc|/etc/tmpfiles.d/redis.conf|<nowiki>
  +
w /sys/kernel/mm/transparent_hugepage/enabled - - - - never
  +
w /sys/kernel/mm/transparent_hugepage/defrag - - - - never
  +
</nowiki>}}
  +
  +
=== TCP バックログの警告 ===
  +
  +
{{ic|The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.}} という警告メッセージを解決するには、値を増やしてください:
  +
{{hc|/etc/sysctl.d/99-sysctl.conf|<nowiki>
  +
net.core.somaxconn=512
  +
</nowiki>}}
  +
  +
=== overcommit_memory が 0 に設定されているという警告 ===
  +
  +
{{ic|overcommit_memory is set to 0! Background save may fail under low memory condition}} という警告メッセージを解決するには:
  +
{{hc|/etc/sysctl.d/99-sysctl.conf|<nowiki>
  +
vm.overcommit_memory=1
  +
</nowiki>}}

2017年11月23日 (木) 20:02時点における最新版

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