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

推薦する

サーバー同時実行数の推定式と計算方法

最近、サーバーのストレステストを再度行う必要が出てきました。ここでは、最近学んだ見積もりスキームと見...

Python スクリプトを Ubuntu で直接実行する方法

翻訳プログラムを例に挙げてみます。前回はWindowsでのアプリケーションのパッケージ化についてお話...

携帯電話に GreasyFork js スクリプトをインストールするチュートリアル

目次序文1. Iceraven ブラウザ (Firefox) (Android) 2. (アンドロイ...

子ども向けウェブサイトの視覚構造レイアウト設計手法の分析

1. 温かくて優しい関連アドレス: http://www.web-designers.cn/post...

Ubuntu システムでタイムゾーンと時刻を変更する方法

Linux コンピュータには 2 つの時間があります。1 つはハードウェア時間 (BIOS に記録さ...

MySQL サブクエリ (ネストされたクエリ)、結合テーブル、複合クエリの詳細な説明

1. サブクエリMySQL 4.1以降はサブクエリをサポートしていますサブクエリ:別のクエリ内にネス...

MySQLデータベース操作の基本コマンド

1. データベースを作成します。 データ data _name を作成します。 PHP でデータベー...

VMware15 の CentOS7 インストールの詳細なプロセスとよくある問題 (画像とテキスト)

1. インストールパッケージの準備VMware-player-15.0.4-12990004、非商...

HTMLフロートの使用法の簡単な分析

float の使用例左サスペンション: float:left;右サスペンション: float:rig...

URL を入力すると、バックグラウンドでは具体的に何が起こるのでしょうか?

ソフトウェア開発者は、ネットワーク アプリケーションがどのように動作するかを階層的に完全に理解してい...

WeChat アプレット ピッカー マルチ列セレクター (モード = multiSelector)

目次1. 効果図(複数列) 2. 通常セレクター: mode = selector、複数列セレクター...

JavaScript 配列と非配列オブジェクトのディープ クローンとシャロー クローンの原則の詳細な説明

目次シャロークローニングとディープクローニングとは何ですか? 1. アレイのクローンを作成する1.1...

Navicat が MySQL に接続するときに発生する 1045 エラーの解決方法

ローカル データベースに接続すると、Navicat for MySQL は以下のように 1045 エ...

React NativeのScrollViewプルダウンリフレッシュ効果

この記事では、React Native ScrollViewのプルダウンリフレッシュ効果の具体的なコ...

MySQLにおける分散ロックの考え方をDBの助けを借りて詳しく説明します

序文スタンドアロン ロックであっても分散ロックであっても、共有データに基づいて現在の操作の動作を判断...