RedisとMySQLの違いを簡単に説明してください

RedisとMySQLの違いを簡単に説明してください

MySQL はディスクに保存される永続的なストレージであり、取得には一定の IO が伴うことはご存じのとおりです。このボトルネックを解決するために、最も一般的に使用される memcached (略して mc) などのキャッシュが登場しました。まず、ユーザーは mc にアクセスします。ヒットしない場合は、mysql にアクセスします。すると、メモリやハードディスクと同様に、データが mc の一部にコピーされます。

redis と MC はどちらもキャッシュであり、どちらもメモリ内で実行されるため、データ量の多い Web アクセスのアクセス速度が大幅に向上します。ただし、mc は文字列ストレージなどの単純なデータ構造のみを提供します。redis は、文字列、リスト、セット、ハッシュセット、ソートセットなどの多数のデータ構造を提供するため、ユーザーにとって非常に便利です。結局のところ、実用的な機能のレイヤーをカプセル化し、同じ効果を実現します。もちろん、redis を使用して、徐々に mc を放棄します。

メモリとハードディスクの関係は、ハードディスクには永続的なストレージのための主なデータが保存され、メモリには現在実行中のデータが保存されるということです。CPU はディスクではなくメモリにアクセスするため、実行速度が大幅に向上します。もちろん、これはプログラムのローカル アクセスの原則に基づいています。

redis+mysql について考えると、これはメモリとディスクの関係のマッピングです。MySQL はディスク上に配置され、redis はメモリ内に配置されます。このようにして、Web アプリケーションは毎回 redis のみにアクセスし、データが見つからない場合にのみ Mysql にアクセスします。

ただし、redis+mysql とメモリ+ディスクの使用方法は異なる方がよいでしょう。

前者はインメモリデータベースであり、データはメモリ上に保存されるため、当然高速です。

後者は、強力な機能を備えているがデータ アクセスが遅いリレーショナル データベースです。

memcache、mongoDB、Redis などはすべて No sql シリーズに属します。

これらは同じタイプではなく、適用シナリオも異なります。それはあなたのニーズによって異なります。

要約する

以上が、この記事における Redis と MySQL の違いについての簡単な説明です。興味のある方は、SQL と MySQL ステートメントの実行順序の分析、いくつかの重要な MySQL 変数、MySQL の FIND_IN_SET() と IN の違いの簡単な分析を参照してください。不足している点がある場合は、メッセージを残して修正してください。これが皆さんのお役に立てば幸いです。

以下もご興味があるかもしれません:
  • Docker + Nodejs + Kafka + Redis + MySQL でシンプルな seckill 環境を構築する
  • PHP の Laravel フレームワークと MySQL および Redis データベースのデプロイメントを組み合わせたもの
  • MySQLからRedisにデータベースを移行する方法
  • CentOS インストール PHP5.5+Redis+XDebug+Nginx+MySQL 完全記録
  • Python を MySQL、MongoDB、Redis、memcache などのデータベースに接続する方法

<<:  Docker を使用して Spring Boot をデプロイする方法の例

>>:  dockercompose を使用して springboot-mysql-nginx アプリケーションをビルドする

推薦する

Linuxで大きなファイルを素早くコピーする方法

データをコピーリモートでデータをコピーする場合、通常は rsync コマンドを使用しますが、小さなフ...

JavaScript マウスイベントのケーススタディ

マウスイベントマウスが特定の操作を実行すると、イベント オブジェクトが生成され、イベントがトリガーさ...

Dockerイメージの作成、アップロード、プル、デプロイを理解するための記事

目次1. 画像1. 鏡とは何ですか? 2. 画像の構成と目的(1) Dockerファイル(2)スクラ...

Vue はユーザーのログイン状態を維持します (さまざまなトークン保存方法)

目次クッキーの設定方法クッキーのデメリット: LocalStorage と SessionStora...

tdが空の場合に境界線を表示する方法

以前、CSS を使用してテーブルの border + bordercolordark + borde...

js でシンプルなタブを実装する

タブ選択カードは、実際の Web ページで非常に頻繁に使用されます。基本的に、すべての Web ペー...

MySQL 5.7.18 zip バージョンのインストールと設定方法のグラフィック チュートリアル (win7)

Windows に mysql5.7.18zip バージョンをインストールするには、使用前に解凍し...

js クロージャとガベージ コレクション メカニズムの例の詳細な説明

目次序文文章1. 終了1.1 クロージャとは何ですか? 1.2 クロージャの特性1.3 クロージャを...

MySQLの数値型自動増分における落とし穴

テーブル構造を設計する場合、数値型は最も一般的な型の 1 つですが、数値型をうまく使用するのは想像す...

UTF-8 および GB2312 ウェブエンコーディング

最近、多くの学生から Web ページのエンコーディングについて質問を受けています。gb2312 と ...

Docker データボリュームの一般的な操作コードの例

開発者が Dockerfile を使用してイメージをビルドする場合は、イメージをビルドするときにデー...

HTML でフレームセット タグを使用するチュートリアル

フレームセット ページは通常の Web ページとは多少異なります。依然として <HTML>...

Linux 上の MySQL 5.7 でパスワードを忘れる問題を解決する

1. 問題Linux 上の mysql5.7 のパスワードを忘れました2. 解決策• ステップ 1:...

Dockerコンテナのデータを復元する方法

プロジェクトのテスト環境データベースのデータが失われてしまったので、記録しておきたいと思います。当時...

jsプロキシの原理の詳細な説明

目次プロキシモードとは何ですか?実例を紹介例を使ってプロキシモデルの定義を理解するプロキシとはget...