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の利点
- データの読み取りと書き込みの速度が非常に高速です。データの読み取り速度は最大110,000回/秒に達し、データの書き込み速度は最大81,000回/秒に達する可能性があります。
- 豊富なデータ型のサポート:Key-Value、文字列、リスト、ハッシュ、セット、順序セット、およびその他のデータ型操作をサポートします
- データの永続性をサポート:メモリ内のデータをディスクに保存し、再起動時に使用するために再度ロードすることができます
- Atomicity:すべてのRedis操作はアトミックです
- データバックアップのサポート:マスターサルベモードでのデータバックアップ
Redisはメモリベースのデータベースであり、キャッシュは最も一般的に使用されるフィールドの1つです。
さらに、Redisの一般的なアプリケーションシナリオには、最新のNデータの取得、アプリケーションのランク付け、カウンターアプリケーション、ストレージ関係、および実際の操作も含まれます。-時間分析システム、ログレコード
3.RedisとMemcachedの違い
/ |
Memcached |
Redis |
の種類 |
Key-Valueデータベース |
Key-Valueデータベース |
有効期限戦略 |
待機する |
待機する |
データの種類 |
単一のデータ型 |
5つのデータ型 |
持久化 |
サポートしません |
待機する |
マスタースレーブレプリケーション |
サポートしません |
待機する |
仮想メモリ |
サポートしません |
待機する |
3、Redisのインストールとデプロイ
1.パッケージを解凍します
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”
#注意,需要一次性正确输入,且输入错误了是无法更改的
選択した構成: |
|
|
港: |
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 操作时的性能