Redis は、ANSI C で書かれたオープンソースのマルチプラットフォーム データ ストレージ ソフトウェアです。Redis は、Lua、C、Java、Python、Perl、PHP およびその他の多くの言語をサポートできます。
redis には現在、公式の RPM インストール パッケージがありません。ソース コードからコンパイルする必要があり、コンパイルするには Make と GCC をインストールする必要があります。
GCC と Make がインストールされていない場合は、yum を使用してインストールします。
yum install gcc make
公式 Web サイトから tar 圧縮パッケージをダウンロードします。
curl http://download.redis.io/releases/redis-3.0.4.tar.gz -o redis-3.0.4.tar.gz
解凍します。
tar zxvf redis-3.0.4.tar.gz
解凍したディレクトリを入力します。
cd redis-3.0.4
Make を使用してソース ファイルをコンパイルします。
make
ソース ファイルのディレクトリを入力します。
cd src
Redis サーバーとクライアントを /usr/local/bin にコピーします。
cp redis-server redis-cli /usr/local/bin
センチネルをコピーし、ベンチマークして確認するのが最善です。
cp redis-sentinel redis-benchmark redis-check-aof redis-check-dump /usr/local/bin
redis 構成フォルダーを作成します。
mkdir /etc/redis
/var/lib/redis にデータを保存するための有効なディレクトリを作成します
mkdir -p /var/lib/redis/6379
Redis が適切に動作するためには、いくつかのカーネル パラメータが必要です。設定されています。
vm.overcommit_memory を 1 に構成すると、データの切り捨てを回避できます。詳細については、ここを参照してください。
sysctl -w vm.overcommit_memory=1
バックログ接続の最大数を変更して、redis.conf の tcp-backlog 値 (デフォルト値 511) を超えます。 sysctl ベースの IP ネットワーク トンネリングの詳細については、kernel.org を参照してください。
sysctl -w net.core.somaxconn=512
透過ヒュージ ページのサポートをキャンセルします。これは、Redis の使用中に遅延とメモリ アクセスの問題を引き起こすためです。
echo never > /sys/kernel/mm/transparent_hugepage/enabled
redis.conf は Redis の設定ファイルですが、このファイルの名前は 6379.conf であり、この番号がネットワーク ポートであることがわかります。 redis が聞きます。複数の Redis インスタンスを実行するには、次の命名スキームをお勧めします。
サンプルの redis.conf を /etc/redis/6379.conf にコピーします。
cp redis.conf /etc/redis/6379.conf
次に、このファイルを編集してパラメータを構成します。
vi /etc/redis/6379.conf
daemonize を no に設定します。systemd はフォアグラウンドで実行する必要があります。そうしないと、redis が突然ハングします。
daemonize no
pidfile を /var/run/redis_6379.pid に設定します。
pidfile /var/run/redis_6379.pid
デフォルトのポートを使用する予定がない場合は、変更できます。
port 6379
ログ レベルを設定します。
loglevel notice
ログ ファイルのパスを変更します。
logfile /var/log/redis_6379.log
ディレクトリを /var/lib/redis/6379 に設定します
dir /var/lib/redis/6379
セキュリティを向上させる操作がいくつかあります。
クライアント プログラムとサーバー プログラムは通常、同じマシン上で実行されるため、ネットワーク ソケットをリッスンする必要はありません。これがあなたのユースケースに似ている場合は、ネットワークソケットの代わりに Unix ソケットを使用できます。これを行うには、ポートを 0 に設定し、次のオプションを設定して UNIX ソケットを有効にする必要があります。
unixソケットのソケットファイルを設定します。
unixsocket /tmp/redis.sock
ソケット ファイルのアクセス許可を制限します。
unixsocketperm 700
redis-cli にアクセスできるようにするには、-s パラメーターを使用してソケット ファイルを指定する必要があります。
redis-cli -s /tmp/redis.sock
リモート アクセスが必要な場合は、各操作の前にパスワードが要求されるようにパスワードを設定する必要があります。
requirepass "bTFBx1NYYWRMTUEyNHhsCg"
次のコマンドの出力を想像してください。はい、これによりサーバーの構成が出力されるため、可能な限りこのアクセスを拒否する必要があります。
CONFIG GET *
「rename-command」コマンドを使用して、この命令または他の命令の使用を制限または禁止できます。コマンド名と代替名を指定する必要があります。コマンドをより安全に禁止するには、コマンドの名前を誰も推測できないように、その代替名を空の文字列に設定する必要があります。
rename-command FLUSHDB "FLUSHDB_MY_SALT_G0ES_HERE09u09u"rename-command FLUSHALL ""rename-command CONFIG "CONFIG_MY_S4LT_GO3S_HERE09u09u"
UNIX ソケット経由でアクセスするにはパスワードを使用し、コマンドを変更します
デフォルトでは、 redis データセットは、設定したディレクトリ内の dump.rdb ファイルに定期的にダンプされます。 save コマンドを使用してダンプの頻度を構成できます。このコマンドの最初のパラメータは秒単位の時間枠、2 番目のパラメータはデータ ファイルに対して行われる変更の数です。
15 分ごと、キーは少なくとも 1 回変更されています。
save 900 1
5 分ごとにキーが少なくとも 10 回変更されました。
save 300 10
1 分ごとにキーが少なくとも 10,000 回変更されました。
save 60 10000
ファイル /var/lib/redis/6379/dump.rdb には、前回の保存以降のメモリ内データセットのダンプ データが含まれています。一時ファイルを作成してから以前のダンプファイルを置き換えるので、データが壊れる心配はなく、ファイルを直接コピーすることができますのでご安心ください。
systemd を使用して、redis をシステム ブート リストに追加できます。
サンプルの init_script ファイルを /etc/init.d にコピーします。スクリプト名で表されるポート番号に注意してください。
cp utils/redis_init_script /etc/init.d/redis_6379
ここで systemd を使用したいので、/etc/systems/system の下に redis_6379.service という名前のユニット ファイルを作成します。
vi /etc/systemd/system/redis_6379.service
次の内容を入力します。詳細については、systemd.service を参照してください。
[Unit]Description=Redis on port 6379[Service]Type=forkingExecStart=/etc/init.d/redis_6379 startExecStop=/etc/init.d/redis_6379 stop[Install]WantedBy=multi-user.target
现在添加我之前在 /etc/sysctl.conf 里面修改过的内存过量使用和 backlog 最大值的选项。
vm.overcommit_memory = 1net.core.somaxconn=512
对于透明巨页内存支持,并没有直接 sysctl 命令可以控制,所以需要将下面的命令放到 /etc/rc.local 的结尾。
echo never > /sys/kernel/mm/transparent_hugepage/enabled
这样就可以启动了,通过设置这些选项你就可以部署 redis 服务到很多简单的场景,然而在 redis.conf 还有很多为复杂环境准备的 redis 选项。在一些情况下,你可以使用 replication 和 Sentinel 来提高可用性,或者将数据分散在多个服务器上,创建服务器集群。
Linux是一种免费使用和自由传播的类UNIX操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统,使用Linux能运行主要的Unix工具软件、应用程序和网络协议。
以上がCentOS 7 に Redis サーバーをインストールする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。