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

CSSの概要

leftとrightのレイアウトは、子要素でfloatを設定し、親要素でclearfixクラスを使ってfloatをクリアするのが一般的です。サンプルコードは以下の通りです: 親要素に set; 子要素に set .サンプルコードは以下の通りです:線形アニメーションは、初期状態から遷移状態の終了まで一定の速度になります。...

Feb 2, 2020 · 12 min read