記事ディレクトリ
序文
Redis シリーズの最初のブログはインストールとデプロイメントから始まります。ここでは最新の安定バージョンを選択します。Redis 7.0.9 Released
1. 公的書類
公式 Web サイトのアドレス: https://redis.io/docs/getting-started/installation/install-redis-from-source/
さらに、インストール プロセス中にインストール パッケージ内のファイルを表示することもできますREADME.md
。
ヒント:
新しいテクノロジーを学ぶには、まず公式ドキュメントを確認することをお勧めします。これは最も詳細で理解しやすいものではないかもしれませんが、最も包括的で正確である必要があります。
2. 環境説明
- CentOS 7.X
- Redis 7.0.X
3. ソースコードのインストール
公式 Web サイトでは 4 つのインストール方法が提供されています。ここでは 4 番目の方法、ソース コードに基づいたインストールを紹介しますInstall Redis from Source
。
1. 基本的な手順
コードは次のとおりです(例)。
//一般用户自行安装的软件都放在/usr/local/目录下
cd /usr/local/
//下载最新的稳定版本
wget https://download.redis.io/redis-stable.tar.gz
//解压
tar -xzvf redis-stable.tar.gz
cd redis-stable
//编译,需要gcc编译器
make
//测试:官方建议操作,但比较耗时,可以跳过,需要tcl 8.5
//make test
//安装服务
make install
//启动redis服务
redis-server
make install の手順: make install コマンドは、デフォルトで
サービスを ディレクトリにインストールします/usr/local/redis-stable/src/
。インストール ディレクトリを再指定する場合は、PREFIX パラメータを適用できます。/usr/local/bin/
redis-server サービスが正常に開始されました。
2. 異常記録
1) make コンパイル例外: make[3]: cc: コマンドが見つかりません
解決策:
理由は、CentOS7 仮想マシン システムに gcc がないためです。そのため、gcc をインストールするだけです。
yum -y install gcc
2) コンパイル例外を作成します: zmalloc.h:50:31: 致命的なエラー: jemalloc/jemalloc.h: そのようなファイルまたはディレクトリはありません
解決策:
解凍時に gcc コンパイラが事前にインストールされていなかったため、最初の make で多くのガベージの問題が発生しました。
このとき、以前のコンパイルファイルを削除し、再度メイクコンパイル操作を実行する必要があります。
cd /usr/local/
rm -fr redis-stable
tar -xzvf redis-stable.tar.gz
cd redis-stable
make
make distclean
このコマンドを使用して、コンパイル前に make を実行して生成されたキャッシュ ファイルをクリアし、再コンパイルすることもできます。
make distclean
make
3)make test异常:Redisテストを実行するにはtcl 8.5以降が必要です
解決:
yum install -y tcl-devel
ソース コードを通じてインストールすることもできますが、ダウンロード速度が非常に遅くなります。
wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
tar xzvf tcl8.6.1-src.tar.gz
cd /usr/local/tcl8.6.1/unix/
./configure
make
make install
テストに合格しました:
3. テストサービス
新しい接続ウィンドウを開き、redis-cli を使用して Redis サービスをテストします。
[root@localhost ~]# cd /usr/local/
[root@localhost local]# redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> set laowan 666
OK
127.0.0.1:6379> get laowan
"666"
127.0.0.1:6379> incr mycounter
(integer) 1
127.0.0.1:6379> incr mycounter
(integer) 2
127.0.0.1:6379> exit
4. 基本構成
ここでは、redis ディレクトリにあるデフォルトの構成ファイル redis.conf を直接変更します。新しい構成ファイルをコピーして、プロパティを編集することもできます。
cd /usr/local/redis-stable
vi redis.conf
# 设置redis服务监听的实例,只有绑定IP的服务器才能访问redis服务,这里设置为全部开放,可以改为自己需要访问redis服务器的具体IP
bind * -::*
#保护模式,默认开启,此时远程服务器需要密码才能访问redis服务
protected-mode yes
#守护进程启动,也就是后台启动,会将进程pid写入/var/run/redis.pid文件中,systemd下无效
daemonize yes
#配置pid文件的保存地址
pidfile /var/run/redis_6379.pid
#日志等级
loglevel notice
#日志文件,默认/dev/null
logfile ""
#认证配置
#redis7中推荐采用acl认证
#aclfile /etc/redis/users.acl
#密码认证
requirepass 123456
#设置最大内存,避免Redis使用的内存达到系统限制时会因内存不足而崩溃
maxmemory 1g
#过期淘汰策略,默认是noeviction不淘汰,这里设置为淘汰最不经常使用的过期key
maxmemory-policy volatile-lfu
5. その他の推奨構成
Redis 起動ログにいくつかの警告 ⚠️ 情報があることがわかります。プロンプトに従って最適化を試みてください。
- TCP バックログ バックログ設定。ソケット リスニング (リッスン) のバックログの上限を示します。バックログはソケットのリスニング キューです。リクエスト (リクエスト) が処理または確立されていない場合、バックログに入ります。デフォルト
/proc/sys/net/core/somaxconn
値は 128 ですが、小さすぎるため増やす必要があります。 - メモリのオーバーコミットを有効にする:
vm.overcommit_memory = 1
/etc/sysctl.conf に追加し、sysctl vm.overcommit_memory=1 を実行して構成を有効にします。 - カーネル機能の透過ヒュージ ページをオフにします。これは、メモリ使用量と遅延に悪影響を与える可能性があります。
echo never > /sys/kernel/mm/transparent_hugepage/enabled
- スワップ メモリの使用を削減し、パフォーマンスを向上させます。
/etc/sysctl.conf に以下を追加します。
//开启内存过量使用,避免后台保存或复制可能会在内存不足的情况下失败。 被禁用时,它也可能在没有低内存条件的情况下导致失败
vm.overcommit_memory = 1
//TCP积压backlog设置
net.core.somaxconn = 2048
//可以打开的最大文件数
fs.file-max = 6553560
//尽量少使用swap空间,swappiness=0的时候表示最大限度使用物理内存,然后才是swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。linux的基本默认设置为60
//由于内存的速度会比磁盘快很多,这样子会加大系统IO,同时造的成大量页的换进换出,严重影响系统的性能,所以我们在操作系统层面,要尽可能使用内存,对该参数进行调整
vm.swappiness = 1
次のコマンドを実行してパラメータを有効にします
sysctl -p
6. リモート接続
RedisInsight は、公式 Web サイトで推奨されている Redis 視覚化クライアント ツールであり、最高の Redis GUI として知られています。
ここでは、これを使用して Redis サービスのリモート接続をテストします。
ここで私の仮想マシンの IP は 192.168.206.129、接続情報:
接続は成功しました:
Redis-6.x のインストールとトラブルシューティング
Linux で swappiness パラメータを設定して、スワップ パーティションの使用を開始する前に使用するメモリ量を構成する