为什么要使用redis来做缓存呢? redis是key-value的形式,map也是,可以用Map替代redis吗? 如果不能替代,有什么场景或需求是只有redis能实现的呢?
认证0级讲师
キャッシュはローカルキャッシュと分散キャッシュに分かれます。 Java を例に挙げると、ローカル キャッシュは、組み込みのマップまたは guava を使用して実装されます。主な特徴は、jvm の破棄でライフ サイクルが終了することです。複数のインスタンスの場合は、それぞれが破棄されます。インスタンス 各キャッシュを保存する必要がありますが、キャッシュは一貫していません。
redis または memcached の使用は分散キャッシュと呼ばれます。複数のインスタンスの場合、各インスタンスはデータのキャッシュを共有し、キャッシュは一貫しています。欠点は、redis または memcached サービスの可用性を高く保つ必要があり、プログラム アーキテクチャ全体が比較的複雑であることです。
Redis はキャッシュに数十ギガバイトのメモリを使用できますが、Map は通常、十分な大きさのデータを必要とするのは数ギガバイトだけです
Redis キャッシュは永続化でき、Map はメモリ オブジェクトであり、プログラムが再起動されるとすぐにデータが失われます
Redis は分散キャッシュを実装でき、Map はそれを作成したプログラム内にのみ存在できます
Redis は 1 秒あたり数百万の同時実行を処理でき、Map は単なる普通のオブジェクトです
Redisキャッシュには有効期限メカニズムがありますが、Map自体にはこの機能はありません
Redis には豊富な API があり、Map ははるかにシンプルです
1. Redis データは永続的に保存できますが、プログラムを再起動した後も一部のキャッシュを使用し続けることはできません。2. 複数のマシンとプロセスが関与している限り、Map はそれを実現できません。 3. Redis には、ハッシュ セット リスト ソート セットなど、操作が簡単なデータ構造が多数あります。シナリオによっては、マップよりも操作が便利です
1. キャッシュに大量のコンテンツをロードする必要がある場合、起動時に時間がかかります。2. JVM メモリが大きすぎるため、ハングしやすくなります。 #3. redis は C で書かれており、安定しています 4. 現在の redis はすでにクラスター モード、永続性などの機能をサポートしています。使いやすい
redis は独立してデプロイできるため、Web サイトのコードが更新された後も redis によってキャッシュされたデータが残り、Web サイトが更新されるたびにローカル メモリが解放されます。データは保存されます。ローカルメモリをプロジェクト間で共有できない場合は、キャッシュされたデータを複数のプロジェクト間で共有できます
ローカル キャッシュの表示や変更は簡単ではありません。Redis にはキャッシュ データを管理するための豊富なツールがあります
キャッシュはローカルキャッシュと分散キャッシュに分かれます。 Java を例に挙げると、ローカル キャッシュは、組み込みのマップまたは guava を使用して実装されます。主な特徴は、jvm の破棄でライフ サイクルが終了することです。複数のインスタンスの場合は、それぞれが破棄されます。インスタンス 各キャッシュを保存する必要がありますが、キャッシュは一貫していません。
redis または memcached の使用は分散キャッシュと呼ばれます。複数のインスタンスの場合、各インスタンスはデータのキャッシュを共有し、キャッシュは一貫しています。欠点は、redis または memcached サービスの可用性を高く保つ必要があり、プログラム アーキテクチャ全体が比較的複雑であることです。
Redis はキャッシュに数十ギガバイトのメモリを使用できますが、Map は通常、十分な大きさのデータを必要とするのは数ギガバイトだけです
Redis キャッシュは永続化でき、Map はメモリ オブジェクトであり、プログラムが再起動されるとすぐにデータが失われます
Redis は分散キャッシュを実装でき、Map はそれを作成したプログラム内にのみ存在できます
Redis は 1 秒あたり数百万の同時実行を処理でき、Map は単なる普通のオブジェクトです
Redisキャッシュには有効期限メカニズムがありますが、Map自体にはこの機能はありません
Redis には豊富な API があり、Map ははるかにシンプルです
1. Redis データは永続的に保存できますが、プログラムを再起動した後も一部のキャッシュを使用し続けることはできません。
2. 複数のマシンとプロセスが関与している限り、Map はそれを実現できません。
3. Redis には、ハッシュ セット リスト ソート セットなど、操作が簡単なデータ構造が多数あります。シナリオによっては、マップよりも操作が便利です
1. キャッシュに大量のコンテンツをロードする必要がある場合、起動時に時間がかかります。
2. JVM メモリが大きすぎるため、ハングしやすくなります。 #3. redis は C で書かれており、安定しています
4. 現在の redis はすでにクラスター モード、永続性などの機能をサポートしています。使いやすい
redis は独立してデプロイできるため、Web サイトのコードが更新された後も redis によってキャッシュされたデータが残り、Web サイトが更新されるたびにローカル メモリが解放されます。
データは保存されます。ローカルメモリをプロジェクト間で共有できない場合は、キャッシュされたデータを複数のプロジェクト間で共有できます
ローカル キャッシュの表示や変更は簡単ではありません。Redis にはキャッシュ データを管理するための豊富なツールがあります