CentOS 7 に Redis サーバーをインストールする方法

WBOY
リリース: 2023-05-31 08:25:21
転載
1436 人が閲覧しました

Redis は、ANSI C で書かれたオープンソースのマルチプラットフォーム データ ストレージ ソフトウェアです。Redis は、Lua、C、Java、Python、Perl、PHP およびその他の多くの言語をサポートできます。

Redis の構築

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.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

daemonize を no に設定します。systemd はフォアグラウンドで実行する必要があります。そうしないと、redis が突然ハングします。

daemonize no
ログイン後にコピー
pidfile

pidfile を /var/run/redis_6379.pid に設定します。

pidfile /var/run/redis_6379.pid
ログイン後にコピー
port

デフォルトのポートを使用する予定がない場合は、変更できます。

port 6379
ログイン後にコピー
loglevel

ログ レベルを設定します。

loglevel notice
ログイン後にコピー
logfile

ログ ファイルのパスを変更します。

logfile /var/log/redis_6379.log
ログイン後にコピー
dir

ディレクトリを /var/lib/redis/6379 に設定します

dir /var/lib/redis/6379
ログイン後にコピー

セキュリティ

セキュリティを向上させる操作がいくつかあります。

Unix ソケット

クライアント プログラムとサーバー プログラムは通常、同じマシン上で実行されるため、ネットワーク ソケットをリッスンする必要はありません。これがあなたのユースケースに似ている場合は、ネットワークソケットの代わりに Unix ソケットを使用できます。これを行うには、ポートを 0 に設定し、次のオプションを設定して UNIX ソケットを有効にする必要があります。

unixソケットのソケットファイルを設定します。

 unixsocket /tmp/redis.sock
ログイン後にコピー

ソケット ファイルのアクセス許可を制限します。

unixsocketperm 700
ログイン後にコピー

redis-cli にアクセスできるようにするには、-s パラメーターを使用してソケット ファイルを指定する必要があります。

redis-cli -s /tmp/redis.sock
ログイン後にコピー
requirepass

リモート アクセスが必要な場合は、各操作の前にパスワードが要求されるようにパスワードを設定する必要があります。

requirepass "bTFBx1NYYWRMTUEyNHhsCg"
ログイン後にコピー
rename-command

次のコマンドの出力を想像してください。はい、これによりサーバーの構成が出力されるため、可能な限りこのアクセスを拒否する必要があります。

CONFIG GET *
ログイン後にコピー

「rename-command」コマンドを使用して、この命令または他の命令の使用を制限または禁止できます。コマンド名と代替名を指定する必要があります。コマンドをより安全に禁止するには、コマンドの名前を誰も推測できないように、その代替名を空の文字列に設定する必要があります。

rename-command FLUSHDB "FLUSHDB_MY_SALT_G0ES_HERE09u09u"rename-command FLUSHALL ""rename-command CONFIG "CONFIG_MY_S4LT_GO3S_HERE09u09u"
ログイン後にコピー

如何在CentOS 7上安装Redis服务器

UNIX ソケット経由でアクセスするにはパスワードを使用し、コマンドを変更します

Snapshot

デフォルトでは、 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 には、前回の保存以降のメモリ内データセットのダンプ データが含まれています。一時ファイルを作成してから以前のダンプファイルを置き換えるので、データが壊れる心配はなく、ファイルを直接コピーすることができますのでご安心ください。

Start at boot

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系统

Linux是一种免费使用和自由传播的类UNIX操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统,使用Linux能运行主要的Unix工具软件、应用程序和网络协议。

以上がCentOS 7 に Redis サーバーをインストールする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!