NoSQL Redis(1)(リレーショナルデータベースと非リレーショナルデータベース、Redisの概要、インストールとデプロイ、および一般的なツール)


1つは、リレーショナルデータベースと非リレーショナルデータベースです。

1.リレーショナルデータベース

  • リレーショナルデータベースは、リレーショナルモデル(2次元テーブルモデル)に基づいて作成された構造化データベースです。
  • 一般的にレコード指向
  • 主流のリレーショナルデータベースには、Ocacle、MySQL、SQL Server、Microsoft、Access、DB2などが含まれます。
  • SQLステートメント(標準データクエリ言語)は、リレーショナルデータベースに基づく言語であり、リレーショナルデータベース内のデータの取得と操作を実行するために使用されます。

2.非リレーショナルデータベース

  • 「SQLだけでなく」を意味するNoSQL(NoSQL = SQLだけではない)は、非リレーショナルデータベースの総称です。
  • 主流のリレーショナルデータベースを除いて、すべてのデータベースは非リレーショナルと見なされます
  • 主流のNoSQLデータベースには、Redis、MongBD、Hbase、Memcachedなどが含まれます。

3.違い

3.1さまざまなデータ保存方法

  • リレーショナルデータベースと非リレーショナルデータベースの主な違いは、データの保存方法です。
  • リレーショナルデータは当然テーブル形式であるため、データテーブルの行と列に格納されます。
  • データテーブルは相互に関連付けて保存でき、データの抽出が簡単です
  • それどころか、非リレーショナルデータは、データテーブルの行と列に格納するのには適していませんが、大きなチャンクにグループ化されています。
  • 非リレーショナルデータは通常、ドキュメント、キーと値のペア、グラフ構造などのデータセットに保存されます
  • データとその特性は、データの保存方法と取得方法の選択に影響を与える主な要因です。

3.2さまざまな拡張方法

  • SQLデータベースとNoSQLデータベースの最大の違いは、拡張の方法にあるかもしれません。もちろん、増大する需要をサポートするには、拡張する必要があります。
  • より多くの同時実行性をサポートするために、SQLデータベースは垂直方向にスケーリングされます。つまり、処理能力が向上し、より高速なコンピューターが使用されるため、同じデータセットをより高速に処理できます。
  • データはリレーショナルテーブルに格納されるため、操作のパフォーマンスボトルネックには多くのテーブルが関係する可能性があり、それらはすべて、コンピューターのパフォーマンスを向上させることによって処理する必要があります。SQLデータベースには拡張の余地がたくさんありますが、最終的には垂直拡張の上限に確実に到達します。
  • NoSQLデータベースは水平方向にスケーリングされます
  • 非リレーショナルデータストレージは自然に分散されるため、NoSQLデータベースの拡張では、通常のデータベースサーバー(ノード)をリソースプールに追加することで負荷を共有できます。

3.3トランザクションのさまざまなサポート

  • データ操作で高いトランザクション性が必要な場合、または複雑なデータクエリで実行プランを制御する必要がある場合は、パフォーマンスと安定性の観点から、従来のSQLデータベースが最適です。
  • SQLデータベースは、トランザクションの原子性のきめ細かい制御をサポートし、トランザクションを簡単にロールバックできます。
  • NoSQLデータベースもトランザクション操作を使用できますが、安定性の点でリレーショナルデータベースと比較することはできません。そのため、操作のスケーラビリティと大量のデータの処理に真の価値があります。

4.非リレーショナルデータの背景

  • リレーショナルデータベースと非リレーショナルデータベースには、それぞれ独自の特性とアプリケーションシナリオがあります。この2つを緊密に組み合わせることで、Web2.0データベースの開発に新しいアイデアがもたらされます。
  • リレーショナルデータベースはリレーションに焦点を合わせ、非リレーショナルデータベースはストレージに焦点を合わせます
  • たとえば、読み取りと書き込みが分離されているMySQLデータベース環境では、頻繁にアクセスされるデータを非リレーショナルデータベースに保存して、アクセス速度を向上させることができます。
  • 需要主導型の開発:
    • データベースの高い同時読み取りと書き込みの需要
    • 効率的なストレージと大量のデータへのアクセスに対する需要
    • データベースの高スケーラビリティと高可用性に対する需要

5.まとめ

  • リレーショナルデータベース:
    • 例->データベース->テーブル(テーブル)->レコード行((行)、データフィールド(列)
  • 非リレーショナルデータベース:
    • 例->データベース->コレクション->キーと値のペア(キーと値)
  • 非リレーショナルデータベースは、データベースとコレクション(テーブル)を手動で構築する必要はありません。

2.Redisの概要

ここに画像の説明を挿入

1.Redisの概要

  • Redisは、C言語で記述されたオープンソースのNoSQLデータベースです。
  • Redisはメモリ上で実行され、永続性をサポートします。現在の分散アーキテクチャの不可欠な部分であるKey-Value(Key-Valueペア)ストレージフォームを使用します。
  • Redisサーバープログラムは単一プロセスモデルです。つまり、サーバー上で複数のRedisプロセスを同時に開始できますが、Redisの実際の処理速度は、メインプロセスの実行効率に完全に依存します。
  • サーバーで実行されているRedisプロセスが1つだけで、同時にアクセスするクライアントが複数ある場合、サーバーの処理能力はある程度低下します。
  • 同じサーバーで複数のRedisプロセスが開始されると、Redisは並行処理機能を向上させ、サーバーのCPUに大きな負荷をかけます。
  • 概要:実際の本番環境では、実際のニーズに基づいて開始するRedisプロセスの数を決定する必要があります。高い同時実行性の要件が高い場合、同じサーバーで複数のプロセスを開始することを検討できます。CPUリソースが比較的多い場合タイト、単一のプロセスを使用するだけ

2.Redisの利点

  1. データの読み取りと書き込みの速度が非常に高速です。データの読み取り速度は最大110,000回/秒に達し、データの書き込み速度は最大81,000回/秒に達する可能性があります。
  2. 豊富なデータ型のサポート:Key-Value、文字列、リスト、ハッシュ、セット、順序セット、およびその他のデータ型操作をサポートします
  3. データの永続性をサポート:メモリ内のデータをディスクに保存し、再起動時に使用するために再度ロードすることができます
  4. Atomicity:すべてのRedis操作はアトミックです
  5. データバックアップのサポート:マスターサルベモードでのデータバックアップ

Redisはメモリベースのデータベースであり、キャッシュは最も一般的に使用されるフィールドの1つです。
さらに、Redisの一般的なアプリケーションシナリオには、最新のNデータの取得、アプリケーションのランク付け、カウンターアプリケーション、ストレージ関係、および実際の操作も含まれます。-時間分析システム、ログレコード

3.RedisとMemcachedの違い

/ Memcached Redis
の種類 Key-Valueデータベース Key-Valueデータベース
有効期限戦略 待機する 待機する
データの種類 単一のデータ型 5つのデータ型
持久化 サポートしません 待機する
マスタースレーブレプリケーション サポートしません 待機する
仮想メモリ サポートしません 待機する

3、Redisのインストールとデプロイ

ここに画像の説明を挿入

1.パッケージを解凍します

  • ソフトウェアパッケージポータルをダウンロードします:redis-5.0.7.ta​​r.gz(抽出コード:qwer)
  • ダウンロードしたソフトウェアパッケージを/ opt /ディレクトリに転送します
systemctl stop firewalld
systemctl disable firewalld
setenforce 0

yum -y install gcc gcc-c++ make

cd /opt
tar zxvf redis-5.0.7.tar.gz -C /opt/

2.ソースコードのコンパイルとインストール

cd redis-5.0.7/
make -j 4
make PREFIX=/usr/local/redis install

#由于 Redis 源码包中直接提供了 Makefile 文件,所以在解压完软件包后,不用先执行./configure 进行配置
#可直接执行 make  make install 命令进行安装

3.Redis関連の構成ファイルをセットアップします

cd /opt/redis-5.0.7/utils/

#执行软件包提供的 install_server.sh 脚本文件来设置 Redis 服务所需要的相关配置文件
./install_server.sh
......
Please select the redis executable path [/usr/local/bin/redis-server] /usr/local/redis/bin/redis-server
#一直回车,直到出现以下选项,手动修改为“/usr/local/redis/bin/redis-server”
#注意,需要一次性正确输入,且输入错误了是无法更改的

[外部リンク画像の転送に失敗しました。ソースサイトにヒル防止リンクメカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします(img-OqOzP8Rl-1614070207824)(http://xcf11.oss-cn-beijing。 aliyuncs.com/blog/20210223 /154259867.png)]

選択した構成:
港: 6379 デフォルトのリスニングポートは6379です
設定ファイル: /etc/redis/6379.conf 構成ファイルのパス
ログファイル: /var/log/redis_6379.log ログファイルのパス
あなたのデータ / var / lib / redis / 6379 データファイルパス
実行可能: / usr / local / redis / bin / redis-server 実行可能ファイルパス
CLI実行可能ファイル: / usr / local / bin / redis-cli クライアントコマンドツール
ln -s /usr/local/redis/bin/* /usr/local/bin/
# redis 的可执行程序文件放入路径环境变量的目录中便于系统识别

netstat -natp | grep "redis"
#当 install_server.sh 脚本运行完毕,Redis 服务就已经启动,默认侦听端口为 6379

vim /etc/redis/6379.conf
#修改配置参数

bind 127.0.0.1 192.168.126.15       #70行,添加监听的主机地址
port 6379                           #93行,Redis 默认的监听端口
daemonize yes                       #137行,启用守护进程
pidfile /var/run/redis_6379.pid     #159行,指定 PID 文件
loglevel notice                     #167行,日志级别
logfile /var/log/redis_6379.log     #172行,指定日志文件

4.実行ステータスを表示します

/etc/init.d/redis_6379 restart
#重启服务,使配置生效

/etc/init.d/redis_6379 status
#查看状态

ここに画像の説明を挿入

Redisサービス制御(コマンドライン) 説明
/etc/init.d/redis_6379停止 やめる
/etc/init.d/redis_6379 start 起動
/etc/init.d/redis_6379再起動 リブート
/etc/init.d/redis_6379ステータス 状態

4、Redisの一般的なツール

1.Redisコマンドツール

コマンドライン 説明
redis-server Redisを起動するためのツール
redis-ベンチマーク マシン上のRedisの動作効率を検出するために使用されます
redis-check-aof AOF永続ファイルを修復します
redis-check-rdb RDB永続ファイルを修復します
redis-cli Redisコマンドラインツール

2.Redis-cliコマンドラインツール

文法:

redis-cli -h host -p port -a password

例:
redis-cli -h 192.168.126.15 -p 6379

ここに画像の説明を挿入

一般的なオプション 説明
-h リモートホストを指定します
-p Redisサービスのポート番号を指定します
-a パスワードを指定します。データベースのパスワードが設定されていない場合、このオプションは省略できます。

オプションが追加されていない場合は、127.0.0.1:6379を使用してマシン上のRedisデータベースに接続します

3.Redisベンチマークテストツール

redis-benchmarkは、Redisサービスのパフォーマンスを効果的にテストできる公式のRedisパフォーマンステストツールです。

基本的なテスト構文:

redis-benchmark [选项] [选项值]
一般的なオプション 説明
-h サーバーのホスト名を指定します
-p サーバーポートを指定します
-s サーバーソケットを指定します
-c 同時接続の数を指定します
-n リクエストの数を指定します
-d SET / GET値のデータサイズをバイト単位で指定します
-k 1 =生き続ける、0 =再接続する
-r SET / GET / INCR、ランダムキーを使用、SADDはランダム値を使用
-p パイプラインリクエスト
-q redisを強制的に終了し、クエリ/秒の値のみを表示します
–csv CSV形式で出力
-l ループを生成し、テストを永久に実行します
-t テストコマンドのコンマ区切りリストのみを実行します
-私 アイドルモード、N個のアイドル接続のみを開いて待機
redis-benchmark -h 192.168.126.15 -p 6379 -c 100 -n 100000
#向 IP 地址为 192.168.126.15,端口为 6379  Redis 服务器发送 100 个并发连接与 100000 个请求以测试性能

redis-benchmark -h 192.168.126.15 -p 6379 -q -d 100
#测试存取大小为 100 字节的数据包的性能

redis-benchmark -t set,lpush -n 100000 -q
#测试本机上 Redis 服务在进行 set  lpush 操作时的性能

おすすめ

転載: blog.csdn.net/weixin_51486343/article/details/113995636