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 アプリケーションをビルドする

推薦する

HTML メタの説明

導入メタタグは、HTML言語のHEAD領域にある補助タグです。 meta は、ページの説明、キーワー...

vmware16 仮想マシンに共有フォルダを設定する方法

1. 仮想マシンに共有フォルダを設定します。 1. 処理する仮想マシンを選択し、右クリックして設定...

Centos7 サーバーで jar パッケージ プロジェクトを開始する最良の方法

序文Linux 上で jar パッケージを実行する方法は誰もが知っています。なぜ別々に話したいのでし...

MySQLデータベースが予期せずクラッシュし、テーブルデータファイルが破損して起動できなくなる問題を解決します。

問題: MySQL データベースが予期せずクラッシュしたため、データベースを起動できませんでした。エ...

after疑似要素を使用して中空の三角矢印とXアイコンを実装する例

フロントエンドのデザイン案では、「X」や「>」の形をした閉じるボタンや、他の 3 方向の白抜き...

Windows 10 の Docker で countly-server を展開して実行するプロセス

私は最近countlyに触れて、慣れてきました。私は、必要に応じてcountlyのクラッシュプラグイ...

JavaScript の Set データ構造の詳細な説明

目次1. セットとは何か2. セットコンストラクタ2.1) 配列2.2) 文字列2.3) 議論2.4...

CentOS の起動時に RabbitMq ソフトウェアを自動的に起動する方法

1. /etc/init.dディレクトリに新しいrabbitmqを作成します。 [root@loca...

Web ページのエンコーディングで gbk や gb2312 ではなく utf-8 が使用されるのはなぜですか?

選択肢がある場合は、UTF-8を使用することをお勧めします。実際、Windows システム自体のプロ...

MySQL ストレージ エンジン MyISAM と InnoDB の違いの概要

1. MySQLのデフォルトストレージエンジンの変更MySQL 5.1 より前のバージョンでは、デフ...

子要素の margin-top によって親要素が移動する問題の解決方法

問題の説明今日、ページ スタイルを変更していたときに、子要素にmargin-top設定したのに、子要...

MySQL ストアド プロシージャの使用例の分析

この記事では、MySQL ストアド プロシージャの使用方法について説明します。ご参考までに、詳細は以...

MySQLにおけるSQLの実行順序についてのちょっとした質問

今日、仕事中に左結合に関するSQLの問題に遭遇しました。後で解決しましたが、この問題を通じてSQLの...

Vueは物流タイムライン効果を実現します

この記事では、物流タイムライン効果を実現するためのVueの具体的なコードを例として紹介します。具体的...

Windows 10 での MySQL 8.0.20 のインストールと設定方法のグラフィック チュートリアル

Win10システムにMySQL8.0.20をローカルにインストールし、個人的にテストして利用可能であ...