#Redis は、現在のテクノロジー コミュニティで非常に人気があります。 Redis は、Antirez の小規模な個人プロジェクトから、インメモリ データ ストレージの業界標準になるまで長い道のりを歩んできました。結果として得られる一連のベスト プラクティスにより、ほとんどの人が Redis を正しく使用できるようになります。
以下では、Redis を正しく使用するための 10 の経験を見ていきます。
1. KEYS の使用をやめる *
わかりました。このコマンドに挑戦することからこの記事を始めるのは良い方法ではないかもしれませんが、確かにそれが最も重要なポイントかもしれません。 Redis インスタンスの統計に注目する場合、多くの場合、キー情報が明確に表示されるように、すぐに「KEYS *」コマンドを入力します。公平を期すために、プログラミングの観点からは、次のような疑似コードを作成する傾向があります:
for key in'keys *': doAllTheThings()
しかし、1,300 万個のキーがあると、実行速度が遅くなります。 KEYS コマンドの時間計算量は O(n) (n は返されるキーの数) であるため、このコマンドの計算量はデータベースのサイズによって異なります。また、この操作の実行中は、インスタンス内で他のコマンドを実行することはできません。
代替コマンドとして、よりわかりやすい方法で実行できる SCAN を見てみましょう... SCAN は増分反復でデータベースをスキャンします。この操作はカーソルのイテレータに基づいて実行されるため、必要に応じていつでも停止または続行できます。
2. Redis の速度を低下させる原因を特定する
Redis には詳細なログがないため、Redis インスタンス内で何が行われているかを知ることは非常に困難です。幸いなことに、Redis は次のようなコマンド統計ツールを提供します。
127.0.0.1:6379> INFO commandstats # Commandstats cmdstat_get:calls=78,usec=608,usec_per_call=7.79 cmdstat_setex:calls=5,usec=71,usec_per_call=14.20 cmdstat_keys:calls=2,usec=42,usec_per_call=21.00 cmdstat_info:calls=10,usec=1931,usec_per_call=193.10
このツールを使用すると、コマンドが実行された回数や実行にかかったミリ秒数など、すべてのコマンド統計のスナップショットを表示できます。 CONFIG RESETSTATコマンドを実行するだけで、コマンド実行時間(各コマンドの合計時間や平均時間)をリセットでき、新たな統計結果を得ることができます。
3、将 Redis-Benchmark 结果作为参考,而不要一概而论
Redis 之父 Salvatore 就说过:“通过执行GET/SET命令来测试Redis就像在雨天检测法拉利的雨刷清洁镜子的效果”。很多时候人们跑到我这里,他们想知道为什么自己的Redis-Benchmark统计的结果低于最优结果 。但我们必须要把各种不同的真实情况考虑进来,例如:
可能受到哪些客户端运行环境的限制? 是同一个版本号吗? 测试环境中的表现与应用将要运行的环境是否一致?
Redis-Benchmark的测试结果提供了一个保证你的 Redis-Server 不会运行在非正常状态下的基准点,但是你永远不要把它作为一个真实的“压力测试”。压力测试需要反应出应用的运行方式,并且需要一个尽可能的和生产相似的环境。
4、Hashes 是你的最佳选择
以一种优雅的方式引入 hashes 吧。hashes 将会带给你一种前所未有的体验。之前我曾看到过许多类似于下面这样的key结构:
foo:first_name foo:last_name foo:address
上面的例子中,foo 可能是一个用户的用户名,其中的每一项都是一个单独的 key。这就增加了 犯错的空间,和一些不必要的 key。使用 hash 代替吧,你会惊奇地发现竟然只需要一个 key :
127.0.0.1:6379> HSET foo first_name 'Joe' (integer) 1 127.0.0.1:6379> HSET foo last_name 'Engel' (integer) 1 127.0.0.1:6379> HSET foo address '1 Fanatical Pl' (integer) 1 127.0.0.1:6379> HGETALL foo 1) 'first_name' 2) 'Joe' 3) 'last_name' 4) 'Engel' 5) 'address' 6) '1 Fanatical Pl' 127.0.0.1:6379> HGET foo first_name 'Joe'
5、设置 key 值的存活时间
无论什么时候,只要有可能就利用key超时的优势。一个很好的例子就是储存一些诸如临时认证key之类的东西。当你去查找一个授权key时——以OAUTH为例——通常会得到一个超时时间。这样在设置key的时候,设成同样的超时时间,Redis就会自动为你清除!而不再需要使用KEYS *
来遍历所有的key了,怎么样很方便吧?
6. 適切なリサイクル戦略を選択する
キーのクリアに関するトピックについて説明したので、次はリサイクル戦略について話しましょう。 Redis インスタンスのスペースがいっぱいになると、いくつかのキーを再利用しようとします。使用状況に応じて、キーにタイムアウトを設定している場合は、volatile-lru 戦略を使用することを強くお勧めします。ただし、キャッシュに似たものを実行していて、キーのタイムアウト メカニズムを設定していない場合は、allkeys-lru リサイクル メカニズムの使用を検討できます。私の提案は、まずここで何が可能かをチェックすることです。
7. データが非常に重要な場合は、Try/Except を使用してください。
重要なデータを Redis インスタンスに確実に配置できるようにする必要がある場合は、それを Redis インスタンスに配置することを強くお勧めします。 Try/Except ブロック。ほとんどすべての Redis クライアントは「送信して忘れる」戦略を採用しているため、多くの場合、キーが実際に Redis データベースに配置されているかどうかを考慮する必要があります。 Redis コマンドに try/expect を設定する複雑さについては、この記事では説明しませんが、そうすることで、重要なデータが配置されるべき場所に確実に配置されることだけを理解する必要があります。
8. インスタンスを使い果たさないようにします
可能な限り、複数の Redis インスタンスのワークロードを分散します。バージョン 3.0.0 以降、Redis はクラスターをサポートします。 Redis Cluster を使用すると、キー範囲に基づいてマスター/スレーブ モードを含むいくつかのキーを分離できます。クラスタリングの背後にある完全な「魔法」はここで見つけることができます。ただし、チュートリアルを探している場合は、ここが最適な場所です。クラスタリングが選択肢にない場合は、ネームスペースとキーを複数のインスタンスに分散することを検討してください。データの配布方法については、redis.io Web サイトにこの優れたレビューがあります。
9. コアは多いほど良いのでしょうか? !
もちろんそれは間違いです。 Redis はシングルスレッドプロセスであり、永続性が有効になっている場合でも最大 2 コアしか消費しません。単一のホスト上で複数のインスタンスを実行する予定がない限り、できれば開発環境とテスト環境でのみ実行してください。 ——それ以外の場合、Redis インスタンスに 2 コアを超える必要はありません。
10. 高可用性
これまでのところ、Redis Sentinel は徹底的にテストされており、多くのユーザーがそれを実稼働環境 (ObjectRocket を含む) に適用しています。アプリケーションが Redis に大きく依存している場合は、アプリケーションがオフラインにならないように高可用性ソリューションを考案する必要があります。もちろん、これらを自分で管理したくない場合は、ObjectRocket が高可用性プラットフォームと 24 時間年中無休のテクニカル サポートを提供しますので、ご興味があれば検討してみてはいかがでしょうか。
以上がLinux の運用と保守のために知っておくべき Redis の経験の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Linux Recoveryモードを入力する手順は次のとおりです。1。システムを再起動し、特定のキーを押してGrubメニューを入力します。 2。[RecoveryMode)でオプションを選択します。 3. FSCKやrootなどの回復モードメニューで操作を選択します。リカバリモードを使用すると、シングルユーザーモードでシステムを開始し、ファイルシステムのチェックと修理を実行し、構成ファイルを編集し、システムの問題を解決するのに役立ちます。

Linuxのコアコンポーネントには、カーネル、ファイルシステム、シェル、および共通ツールが含まれます。 1.カーネルはハードウェアリソースを管理し、基本的なサービスを提供します。 2。ファイルシステムはデータを整理して保存します。 3.シェルは、ユーザーがシステムと対話するインターフェイスです。 4.一般的なツールは、毎日のタスクを完了するのに役立ちます。

Linuxの基本構造には、カーネル、ファイルシステム、およびシェルが含まれます。 1)カーネル管理ハードウェアリソースとUname-Rを使用してバージョンを表示します。 2)ext4ファイルシステムは、大きなファイルとログをサポートし、mkfs.ext4を使用して作成されます。 3)シェルは、BASHなどのコマンドラインインタラクションを提供し、LS-Lを使用してファイルをリストします。

Linuxシステムの管理とメンテナンスの重要な手順には、次のものがあります。1)ファイルシステム構造やユーザー管理などの基本的な知識をマスターします。 2)システムの監視とリソース管理を実行し、TOP、HTOP、その他のツールを使用します。 3)システムログを使用してトラブルシューティング、JournalCtlおよびその他のツールを使用します。 4)自動化されたスクリプトとタスクのスケジューリングを作成し、Cronツールを使用します。 5)セキュリティ管理と保護を実装し、iPtablesを介してファイアウォールを構成します。 6)パフォーマンスの最適化とベストプラクティスを実行し、カーネルパラメーターを調整し、良い習慣を開発します。

Linuxメンテナンスモードは、起動時にinit =/bin/bashまたは単一パラメーターを追加することにより入力されます。 1.メンテナンスモードの入力:GRUBメニューを編集し、起動パラメーターを追加します。 2。ファイルシステムを読み取りおよび書き込みモードに再マウントします:Mount-Oremount、RW/。 3。ファイルシステムの修復:FSCK/dev/sda1などのFSCKコマンドを使用します。 4.データをバックアップし、データの損失を避けるために慎重に動作します。

この記事では、DebianシステムのHadoopデータ処理効率を改善する方法について説明します。最適化戦略では、ハードウェアのアップグレード、オペレーティングシステムパラメーターの調整、Hadoop構成の変更、および効率的なアルゴリズムとツールの使用をカバーしています。 1.ハードウェアリソースの強化により、すべてのノードが一貫したハードウェア構成、特にCPU、メモリ、ネットワーク機器のパフォーマンスに注意を払うことが保証されます。高性能ハードウェアコンポーネントを選択することは、全体的な処理速度を改善するために不可欠です。 2。オペレーティングシステムチューニングファイル記述子とネットワーク接続:/etc/security/limits.confファイルを変更して、システムによって同時に開くことができるファイル記述子とネットワーク接続の上限を増やします。 JVMパラメーター調整:Hadoop-env.shファイルで調整します

このガイドでは、Debian SystemsでSyslogの使用方法を学ぶように導きます。 Syslogは、ロギングシステムとアプリケーションログメッセージのLinuxシステムの重要なサービスです。管理者がシステムアクティビティを監視および分析して、問題を迅速に特定および解決するのに役立ちます。 1. syslogの基本的な知識Syslogのコア関数には以下が含まれます。複数のログ出力形式とターゲットの場所(ファイルやネットワークなど)をサポートします。リアルタイムのログ表示およびフィルタリング機能を提供します。 2。syslog(rsyslogを使用)をインストールして構成するDebianシステムは、デフォルトでrsyslogを使用します。次のコマンドでインストールできます:sudoaptupdatesud

Debianシステムに適したHadoopバージョンを選択する場合、次の重要な要因を考慮する必要があります。1。安定性と長期的なサポート:安定性とセキュリティを追求するユーザーにとって、Debian11(Bullseye)などのDebianの安定したバージョンを選択することをお勧めします。このバージョンは完全にテストされており、最大5年のサポートサイクルがあり、システムの安定した動作を確保できます。 2。パッケージの更新速度:最新のHadoop機能と機能を使用する必要がある場合は、DebianのUnstableバージョン(SID)を検討できます。ただし、不安定なバージョンには互換性の問題と安定性のリスクがあることに注意する必要があります。 3。コミュニティのサポートとリソース:Debianには、豊富なドキュメントを提供できるコミュニティサポートが大きくなり、


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

Dreamweaver Mac版
ビジュアル Web 開発ツール

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

WebStorm Mac版
便利なJavaScript開発ツール
