Redisの詳細な説明1原則

Redisの詳細

        Redisは、memcachedに似たキー値ベースのキャッシュシステムですが、より複雑なデータ構造であるリスト、セット、ソートされたセットをサポートし、永続化の機能を備えています。

        値は文字列、マップ、リスト、セット、ソート済みセットのいずれかであるため、通常はデータ構造サーバーと呼ばれます。

Redisがシステム構造全体で果たす役割については、主に3つの理解があります。

1.キー値ストアは、キー値の形式で格納されたデータベースであり、MySQLに直接配置され、唯一のストレージシステムとして使用されます。

2.メモリキャッシュ:メモリにデータを格納する高速キャッシュであり、memcachdの代わりにアプリケーションとデータベース間のバッファリングを提供するために使用されます。

3.データ構造サーバーこれは、複雑なデータ構造の高速操作をセールスポイントとしてサポートし、いくつかの特別なビジネスシナリオの計算およびプレゼンテーション要件を提供します。たとえば、ランキングアプリケーション、トップ10など。

現在、より多くの人々がそれをmemcachedのアップグレードされたバージョンとして位置付け、より多くのデータ構造操作を提供しており、それはまだキャッシュです。

 Redisの機能:

Redisは完全にオープンソースで無料であり、BSDプロトコルに準拠しており、高性能のKey-Valueデータベースです。

Redisおよびその他のキー値キャッシュ製品には、次の3つの特性があります。

Redisはデータの永続性をサポートしています。これにより、データをディスク上のメモリに保持し、再起動時に使用するために再度ロードできます。

Redisは単純なKey-Valueタイプのデータをサポートするだけでなく、リスト、セット、zset、ハッシュ、その他のデータ構造のストレージも提供します。

Redisは、データのバックアップ、つまりマスター/スレーブモードでのデータのバックアップをサポートしています。

Redis は他のKey-Valueストアとどう違うのですか?

        Redisはより複雑なデータ構造を持ち、アトミック操作を提供します。これは、他のデータベースとは異なる進化のパスです。Redisデータ型は基本的なデータ構造に基づいており、追加の抽象化なしでプログラマーに透過的です。

        Redisはメモリ内で実行されますが、ディスクに永続化できるため、データの量はハードウェアメモリを超えることはできないため、異なるデータセットを高速で読み書きする場合は、メモリを比較検討する必要があります。インメモリデータベースのもう1つの利点は、ディスク上の同じ複雑なデータ構造と比較して、メモリ内での操作が非常に簡単であるため、Redisが内部で複雑な多くのことを実行できることです。同時に、ディスクフォーマットに関しては、ランダムアクセスを必要としないため、コンパクトな方法で生成されます。

Redisの設定( redis.confの設定項目は次のとおりです

Redis設定ファイルはredisインストールディレクトリにあり、ファイル名はredis.confです。configコマンドを使用して、構成アイテムを表示または設定できます。

1. Redisはデフォルトではデーモンとして実行されません。この構成アイテムを使用して変更でき、yesを使用してデーモンを有効にします(  daemonize no)。

2. Redisがデーモンとして実行されている場合、Redisはデフォルトでpidを/var/run/redis.pidファイルに書き込みます。これは、pidfile(pidfile /var/run/redis.pid)で指定できます。

3. Redisリスニングポートを指定します。デフォルトポートは6379です。6379が電話ボタンのMERZに対応する番号であり、MERZはイタリアの歌手Alessia Merzの名前から取られているため、著者はブログ投稿で6379がデフォルトポートとして選択された理由を説明しました(  ポート6379

4.バインドホストアドレス(   bind 127.0.0.1

5.クライアントが接続を閉じるまでのアイドル時間で、0と指定されている場合、関数を閉じることを意味します(  タイムアウト300

6.ログレベルを指定します。Redisは、デバッグ、詳細、通知、警告の合計4つのレベルをサポートします。デフォルトは詳細(  loglevel verbose)です。

7.ロギングモード、デフォルトは標準出力です。デーモンモードで実行するようにRedisが構成され、ここでロギングモードが標準出力として構成されている場合、ログは/ dev / null(logfile stdout)に送信され  ます

8.データベースの数を設定します。デフォルトのデータベースは0です。SELECT<dbid>コマンドを使用して、接続のデータベースIDを指定できます(データベース16

9.データをデータファイルに同期する更新操作の時間と数を指定します。複数の条件を一致させることができます(  <秒> <変更>を保存

       Redisのデフォルト構成ファイルには、3つの条件が用意されています。

            保存900 1         保存300 10        保存60 10000

    つまり、900秒(15分)で1回、300秒(5分)で10回、60秒で10,000回の変更があります。

10.ローカルデータベースに保存するときにデータを圧縮するかどうかを指定します。デフォルトはyesです。RedisはLZF圧縮を使用します。CPU時間を節約したい場合は、このオプションをオフにできますが、データベースファイルは巨大になります(  rdbcompression yes

11.ローカルデータベースファイル名を指定します。デフォルト値はdump.rdb(   dbfilename dump.rdb)です。

12.ローカルデータベースストレージディレクトリ(dir ./)を指定します。 

13.設定このマシンがスレーブサービスの場合、マスターサービスのIPアドレスとポートを設定します。Redisが起動すると、マスターからのデータを自動的に同期します(  slaveof <masterip> <masterport>

14.マスターサービスがパスワードで保護されている場合、スレーブサービスはマスターパスワードに接続します(masterauth <master-password>

15. Redis接続パスワードを設定します。接続パスワードが設定されている場合、クライアントはRedisに接続するときにAUTH <password>コマンドを使用してパスワードを提供する必要があります。デフォルトでは無効になっています(requirepass foobared

16.同時にクライアント接続の最大数を設定します。デフォルトは無制限です。Redisが同時に開くことができるクライアント接続の数は、Redisプロセスが開くことができるファイル記述子の最大数です。maxclients0を設定すると、制限がなくなります。クライアント接続の数が制限に達すると、Redisは新しい接続を閉じ、クライアントに最大数に達したというエラーメッセージをクライアントに返します(  maxclients 128

17. Redisの最大メモリ制限を指定します。Redisは起動時にデータをメモリにロードします。最大メモリに達した後、Redisは最初に期限切れまたは期限切れのキーをクリアしようとします。このメソッドが処理された後も、最大メモリに到達しています設定すると、書き込み操作は実行できなくなりますが、読み取り操作は実行できます。Redisの新しいvmメカニズムはキーをメモリに格納し、値はスワップ領域(maxmemory <bytes>)に格納され  ます

18.更新操作ごとにログを記録するかどうかを指定します。Redisは、デフォルトでデータを非同期でディスクに書き込みます。これがオンになっていない場合、電源がオフになっている間、データが失われることがあります。上記の保存条件に従ってredis自体がデータファイルを同期するため、一部のデータは一定期間メモリにのみ存在します。デフォルトはno(  appendonly no)です

19.更新ログファイル名を指定します。デフォルトはappendonly.aof(appendfilename appendonly.aof)です。

20.更新ログの条件を指定します。3つのオプション値があります: 
    no:オペレーティングシステムがデータキャッシュをディスクに同期するのを待機する(高速) 
    常に:更新操作ごとにfsync()を手動で呼び出してデータをディスクに書き込む(低速、セキュリティ) 
    everysec:1秒に1回同期することを意味します(妥協、デフォルト値)     appendfsync everysec

21.仮想メモリメカニズムを有効にするかどうかを指定します。デフォルト値はnoです。簡単な説明として、VMメカニズムはデータをページに保存します。Redisはアクセス頻度の低いページ、つまりコールドデータをディスクにスワップし、ディスクは頻繁にアクセスされるページに自動的にアクセスします。メモリにスワップアウトします(RedisのVMメカニズムは後の記事で注意深く分析します)(  vm-enabled no

22.仮想メモリファイルパス。デフォルト値は/tmp/redis.swapで、複数のRedisインスタンスで共有することはできません(vm-swap-file /tmp/redis.swap

23. vm-max-memoryより大きいすべてのデータを仮想メモリに格納します。どのように小さなvm-max-memoryを設定しても、すべてのインデックスデータはメモリに格納されます(Redisインデックスデータはキーです)。つまり、vm -max-memoryが0に設定されている場合、実際にはすべての値がディスク上に存在します。デフォルト値は0(vm-max-memory 0)です

24. Redisスワップファイルは多くのページに分割されています。1つのオブジェクトを複数のページに保存できますが、1つのページを複数のオブジェクトで共有することはできません。vm-page-sizeは、保存されたデータのサイズに応じて設定する必要があります。作成者小さなオブジェクトをたくさん保存する場合は、ページサイズを32バイトまたは64バイトに設定することをお勧めします。大きなオブジェクトと大きなオブジェクトを保存する場合は、大きなページを使用できます。わからない場合は、デフォルト値(vm-page-size 32を使用してください。

25.スワップファイルのページ数を設定するページテーブル(ページが空いている、または使用されていることを示すビットマップ)がメモリに配置されているため、ディスク上の8ページごとに1バイトのメモリが消費されます。(   VM-ページ134217728

26.スワップファイルにアクセスするスレッドの数を設定します。マシンのコアの数を超えないようにすることをお勧めします。0に設定すると、スワップファイルに対するすべての操作がシリアルになり、遅延が長くなる可能性があります。デフォルト値は4(  vm-max-threads 4)です

27.クライアントに返信するときに小さいパッケージを1つのパッケージに結合するかどうかを設定します。デフォルトはオンです(  glueoutputbuf yes)。

28.特定の数を超える場合、または最大の要素が特定のクリティカルな値を超える場合は、特別なハッシュアルゴリズム(hash-max-zipmap-entries 64      hash-max-zipmap-value 512)を指定します

29.リセットハッシュをアクティブにするかどうかを指定します。デフォルトはオンです(特定の導入は、Redisハッシュアルゴリズムが導入されたときに後で導入されます)(activerehashing yes

30.他の構成ファイルを含めるように指定します。同じホスト上の複数のRedisインスタンス間で同じ構成ファイルを使用でき、各インスタンスには固有の構成ファイルがあります(  include /path/to/local.conf

Redisコマンド

        Redisコマンドは、redisサービスで操作を実行するために使用されます。主にredisサービスの管理に使用されます。redisサービスでコマンドを実行するには、redisクライアントが必要です。Redisクライアントは、前にダウンロードしたredisインストールパッケージに含まれています。

#/usr/local/src/redis-3.2.11/sr   

次に、ローカルredisサービスに接続し、PING  コマンドを実行  します。これは、redisサービスが開始されているかどうかを検出するために使用されます。

#./redis-cli

127.0.0.1:6379> ping

ポン

リモートの場合:

#./redis - cli - h host - p port - a password

redisサーバーの基本情報を表示します。

127.0.0.1:6379>情報

Redisデータのバックアップと復元

Saveコマンドは、現在のデータベースのバックアップを作成するために使用されます。このコマンドは、redisインストールディレクトリにdump.rdbファイルを作成します。

127.0.0.1:6379>保存

Redisの復元データ:

redisでデータを復元する必要がある場合は、バックアップファイル(dump.rdb)をredisインストールディレクトリに移動して、サービスを開始します。configコマンドを使用して、redisディレクトリを取得できます。

 例:出力redisインストールディレクトリ:

127.0.0.1:6379> config get dir

1)「あなた」

2) "/usr/local/src/redis-3.2.11/src"

bgsaveを使用して、バックグラウンドで実行されるredisバックアップファイルを作成することもできます。

127 .0.0.1:6379> bgsave

Redisのセキュリティ:

redis構成ファイルを使用してパスワードパラメーターまたはコマンドの変更を設定すると、redisサービスへのクライアント接続にパスワード認証が必要になるため、redisサービスをより安全にすることができます。

クライアントログインパスワードが設定されているかどうかを確認します。

127.0.0.1:6379> config get requirepass

1)「requirepass」

2)「」     

デフォルトでは、requirepassパラメータは空です。つまり、パスワードの確認なしでredisサービスに接続できます。

127.0.0.1:6379>構成セットrequirepass "runoob"

OK

パスワードを設定した後、redisサービスへのクライアント接続にはパスワード認証が必要です。それ以外の場合、コマンドは実行できません。

127.0.0.1:6379> config get requirepass

(エラー)NOAUTH認証が必要です。

再登録:

#./redis-cli -a runoob

パスワードが正しいことを確認してください

127.0.0.1:6379> auth runoob

OK

127.0.0.1:6379> config get requirepass

1)「requirepass」

2)「runoob」

おすすめ

転載: blog.csdn.net/yeyslspi59/article/details/108086287