私の目の中のRedis
引用する
実は私の
勉強する
概要
もともとこの
上記のように構成されているのは、ホスト、ポート、パスワードのみで、通常の
よく知られているのは
データの変化が速く、メモリ容量に適したデータベースサイズのアプリケーションに適しています.
使用シーン:株価、データ分析、リアルタイムデータ収集、リアルタイム通信.
現在、データ量はますます大きくなり、従来のリレーショナル・データベースでは、このようなビッグデータのニーズに対応できません.
たとえば、リレーショナル・データベースを使用してモーメンツを格納すると、その日にどのくらいのデータが生成されますか?また検索するとデータベースが死んでしまうのではないでしょうか.
これは私が前に注目した投稿を思い出しました:テンセントの微信のバックグラウンドデータベースはいったいどのように設計されていますか?無知な人が歓談して、最後に公式の友达が見られないようで、返事:誰があなたたちに微信用の関係型データベースを教えてくれましたか?
一般的なリレーショナル・データベースは、クエリーのみでは効率的ですか?読み書きを含めると?それは、従来のデータベースが高同時性に耐えられない可能性があります.
重要なのは、リレーショナル・データベースが拡張できないことです.データ間には関係があるので、データベースの拡張はバックグラウンド・サービスの規模を拡張するようにサーバを持ち出すほど簡単ではありません.
このように、データ量が日増しに増加している今日、ビッグデータ量と高同時性の難題を解決するために、
を選択します.
特長
代表者
適用シーン
キー値ペア記憶
高速クエリーが可能ですが、格納されているデータは構造化されていません.
主にビッグデータの処理に使用される高アクセス負荷のコンテンツキャッシュ
カラムストレージデータベース
検索速度が速く、拡張性が高く、分散型の拡張が容易ですが、機能は相対的に限られています.
分散ファイルシステム
ドキュメントデータベース
データ構造の要件が厳しくなく、クエリーのパフォーマンスが高くなく、統一的なクエリー構文が欠けています.
グラフィックデータベース
図構造関連アルゴリズムを利用するが,図全体を計算しなければ結果が得られず,分布しにくい
ソーシャルネットワーク、推奨システム、リレーショナルスペクトルの構築に専念
これらのデータベースの名前は多かれ少なかれ聞いたことがあるのではないでしょうか.今日になってやっと、それらの役割が本当に分かりました.それぞれの特長があります.ビジネスシーンに基づいて動的に選択する必要があります.
歴史
間もなく、創始者の
キャッシュ
従来のキャッシュコードはこのように書く必要があり、冗長で重複したコードです.
注記を使用してキャッシュを実現するのは簡単ですが、
操作
そして
コードが海のように深く、ソフトウェアの道は遠い.生命の限られた私たちはすべてのことに精通することはできません.私たちは学習コストと能力の向上の間でバランスを取らなければなりません.
まとめ
だから積み重ねず、千里に至ることもない.小流を積まなければ,川の海になることはできない.騏骥一躍、十歩もできず、
Microsoft To-Do
を開くと、Redis
の学習計画がまだそこに横たわっていることがわかりました.実は私の
Redis
に対する理解は、私がこの単語を知っているレベルにとどまっています.勉強する
概要
もともとこの
Redis
に興味がなかったのは、キャッシュされたデータベースではないでしょうか.前回spring-redis
が構成されたとき、これにはユーザー名がありませんでした.spring:
redis:
host: 127.0.0.1
port: 6379
password:
上記のように構成されているのは、ホスト、ポート、パスワードのみで、通常の
MySQL
または他のデータベースとは異なります.Redis
は、ANSI C
を使用して作成されたオープンソース、サポートネットワーク、メモリベース、オプションの持続性のキー値ペアを使用してデータベースを格納します.よく知られているのは
Redis
のキャッシュで、Redis
はC
で記述され、異常に速く動作します.ディスクストレージがサポートされているメモリデータベースです.データの変化が速く、メモリ容量に適したデータベースサイズのアプリケーションに適しています.
使用シーン:株価、データ分析、リアルタイムデータ収集、リアルタイム通信.
NoSQL
Redis
はNoSQL
NoSQL = Not Only SQL
に属する.現在、データ量はますます大きくなり、従来のリレーショナル・データベースでは、このようなビッグデータのニーズに対応できません.
たとえば、リレーショナル・データベースを使用してモーメンツを格納すると、その日にどのくらいのデータが生成されますか?また検索するとデータベースが死んでしまうのではないでしょうか.
これは私が前に注目した投稿を思い出しました:テンセントの微信のバックグラウンドデータベースはいったいどのように設計されていますか?無知な人が歓談して、最後に公式の友达が見られないようで、返事:誰があなたたちに微信用の関係型データベースを教えてくれましたか?
一般的なリレーショナル・データベースは、クエリーのみでは効率的ですか?読み書きを含めると?それは、従来のデータベースが高同時性に耐えられない可能性があります.
重要なのは、リレーショナル・データベースが拡張できないことです.データ間には関係があるので、データベースの拡張はバックグラウンド・サービスの規模を拡張するようにサーバを持ち出すほど簡単ではありません.
このように、データ量が日増しに増加している今日、ビッグデータ量と高同時性の難題を解決するために、
NoSQL
が誕生した.NoSQL
製品は主に4種類あります.を選択します.
特長
代表者
適用シーン
キー値ペア記憶
高速クエリーが可能ですが、格納されているデータは構造化されていません.
Redis
主にビッグデータの処理に使用される高アクセス負荷のコンテンツキャッシュ
カラムストレージデータベース
検索速度が速く、拡張性が高く、分散型の拡張が容易ですが、機能は相対的に限られています.
HBase
分散ファイルシステム
ドキュメントデータベース
データ構造の要件が厳しくなく、クエリーのパフォーマンスが高くなく、統一的なクエリー構文が欠けています.
MongoDB
Web
アプリケーション(一般的なKey-Value
と比較して、Value
は構造化されている)グラフィックデータベース
図構造関連アルゴリズムを利用するが,図全体を計算しなければ結果が得られず,分布しにくい
Neo4j
ソーシャルネットワーク、推奨システム、リレーショナルスペクトルの構築に専念
これらのデータベースの名前は多かれ少なかれ聞いたことがあるのではないでしょうか.今日になってやっと、それらの役割が本当に分かりました.それぞれの特長があります.ビジネスシーンに基づいて動的に選択する必要があります.
Facebook
のメッセージストレージはHBase
データベースを採用し、ビッグデータのランダム、リアルタイムアクセスをサポートしています.NoSQL
データ間は関係ないので拡張しやすく、読み書き性能も高く、同時シーンに適しています.歴史
2008
年、イタリアのある創業会社Merzia
はMySQL
に基づくウェブサイトのリアルタイム統計システムLLOOGG
を発売した.間もなく、創始者の
Salvatore Sanfilippo
はMySQL
の性能に失望し、自分でデータベースを書くことにした.牛人は牛人で、私たちはMySQL
の性能を疑っても、書こうとしても書けないでしょう?!2009
年、Salvatore Sanfilippo
はデータベースの作成を完了しました.これがRedis
です.Salvatore Sanfilippo
はRedis
をオープンソースにし、今日までRedis
の開発を行ってきました.私たちがよく知っているGithub
、StackOverflow
、新浪微博などの会社はRedis
のユーザーです.キャッシュ
従来のキャッシュコードはこのように書く必要があり、冗長で重複したコードです.
ValueOperations valueOperations = redisTemplate.opsForValue();
logger.info(" Redis Key");
if (redisTemplate.hasKey(url)) {
logger.info("Redis , Redis ");
return valueOperations.get(url);
}
logger.info(" Get ");
ResponseEntity response = restTemplate.getForEntity(url, String.class);
logger.info(" ");
valueOperations.set(url, response.getBody(), TIME_OUT, TimeUnit.MINUTES);
Spring AOP
に感謝します.注釈を使用してキャッシュ機能を実現できます.@Cacheable("cacheName")
public List findAll() {
return studentRepository.findAll();
}
注記を使用してキャッシュを実現するのは簡単ですが、
@Cacheable
には多くの高度な使い方があります.後で詳しく説明します.操作
Redis
には3つの動作があります.GET
:キーに基づいて値を検索します.SET
:所与のキー記憶値.DEL
:キーの値を削除します.そして
Redis
のデータ構造です.これはしばらく知る必要はありません.結局、現在使用されているのは既製の@Cacheable
注釈で、手動でRedis
を操作する必要はありません.コードが海のように深く、ソフトウェアの道は遠い.生命の限られた私たちはすべてのことに精通することはできません.私たちは学習コストと能力の向上の間でバランスを取らなければなりません.
まとめ
だから積み重ねず、千里に至ることもない.小流を積まなければ,川の海になることはできない.騏骥一躍、十歩もできず、