blog

Redisの基本

Redisは高性能な非リレーショナルキーバリューライブラリで、分散ロック、キャッシュによく使用されます。 読み込みと書き込みの速度。 スレッドスイッチングのオーバーヘッドを避けるために、シングルスレッ...

Feb 3, 2020 · 2 min. read
シェア

Redisは高性能な非リレーショナルキーバリューライブラリで、分散ロックやキャッシュによく使用されます。

Redis のキーは String 型で、値は型に依存します。

文字列、リスト、ハッシュ(ドメイン値用に2つの内部フィールドを持つ)、セット、zset

Redis

  1. 高速リード/ライト。 読み出し最大11w/s、書き込み最大8.1w/s。 メモリに直接読み書きするため、時間の複雑さはO(1)とみなすことができます!

  2. トランザクション操作のサポート。基本操作はトランザクションで、複数の操作を組み合わせて1つのトランザクションにすることもできます。

  3. トランザクション永続性のサポート

  4. マスタースレーブレプリケーションをサポートし、ホストが自動的にスレーブにデータをコピーし、読み取りと書き込み分離することができます。

  5. 物理メモリサイズによる容量制限

  6. 自動フォールトトレランスとリカバリはありません

  7. オンライン拡張に対応しにくい、十分なメモリを用意する必要がある、利用率が低い可能性がある、など。

Redisキャッシュを使用する理由

キャッシュの利点

  1. ハイパフォーマンス

    メモリからキャッシュを読み込む方が高速ですが、キャッシュの更新とデータベースの更新を同期させる必要があります。

  2. ハイコンカレント

    データベースとキャッシュサービスを分離し、より多くの同時処理をサポート

Redismap/guavaに対する利点

map/guavaは、Javaアプリケーション内部のローカル・キャッシュで、JVMによって破壊されます。 インスタンス内部で作成された場合、そのインスタンスにのみ表示され、他のインスタンスで共有することはできません。

Redisはアプリケーションの外部にある分散キャッシュで、複数のインスタンス間で共有できます。

Redis使用シナリオ

カウンター

RedisはStringを直接インクリメントしたりデクリメントしたりできます。

セッションキャッシュ

複数のアプリケーションサーバーの統合セッションサーバーとして使用でき、すべてのセッション情報を保存します。

分散ロック

Redisには分散ロックを実装するためのSETNX(存在しないように設定し、存在する場合は失敗するように設定する)コマンドが付属していますが、公式のRedLock(安全、デッドロック回避、フォールトトレラント)分散ロックを使うこともできます。

Redis

RDB

Redisデータベースの省略スナップショット

Redisのデフォルトの永続化メソッド。メモリ上のデータは、一定時間ごとにスナップショットとしてハードドライブに保存され、その結果のデータファイルdump.rdbに対応します。

短所:データ損失の可能性

AOF

両方の方法がオンになっている場合、データ復旧RedisはAOF復旧を優先します。

Read next

JavaScriptのパラメータ・パス

値が基本的なデータ型の場合、コピーとして関数に直接渡されます。 val => _val 値が複雑なデータ構造である場合、コピーはパフォーマンスの問題を引き起こし、関数内での修正は元の値に影響を与えます。 値がコピーされたデータ構造である場合、直接参照を渡すのではなく、値の参照のコピーを渡すことがわかります。 o.value...

Feb 1, 2020 · 1 min read