NoSQLデータベースのインストールと使用

(1)Redisインストールと使用が完了しました。データベースの挿入、削除、クエリを完了します。

  Redisこれはkey-value、キーと値のペアの非リレーショナル データベースなどのキーと値のストレージ システム ( ) でありMemcached、現在ますます多くのインターネット企業で採用されています。Redis高性能のキーと値のデータベースとして、memcachedこのタイプのキーと値のストレージの欠点を大幅に補うだけでなく、場合によってはリレーショナル データベースに対して非常に優れた補完的な役割を果たすこともできます。非常に使いやすいクライアントRedisを提供します。①ユーザーとしてログインしシステムを使用してファイル転送を圧縮形式でディレクトリに保存し、パッケージをパスに。PythonRubyErlangPHP

hadoopubuntu kylinwindowsFileZillaredis-5.0.5.tar.gz“/home/hadoop/下载”/usr/local
ここに画像の説明を挿入

redis-5.0.5.tar.gz②ファイルを解凍し、“/usr/local/”ディレクトリに保存します。ここに画像の説明を挿入
③名前redis-5.0.5を に変更しredisユーザーredisにディレクトリの権限を与えます。ディレクトリを入力し、「compile」と入力して「install」を実行しますインストールが完了しましたので、サーバーを起動してください。⑥新規ターミナルを作成し、クライアントを起動します。クライアントがサーバーに接続すると、サーバーのアドレスがでポートが であることを示すコマンド プロンプト情報が表示されますこれで、キーをvalueに設定したり、 keyになど、簡単な操作を実行できるようになります。この時点で、インストールと操作は成功し、データベースを操作できるようになりますデータベースには という形式でデータが格納されますが、テーブル内のデータをデータベースに格納する際の合計の求め方は次のようになりますhadoop
ここに画像の説明を挿入
“/usr/local/redis”Redis
ここに画像の説明を挿入
ここに画像の説明を挿入
RedisRedis
ここに画像の説明を挿入
Redis“127.0.0.1:6379>”IP127.0.0.16379”hello””world””hello”RedisRedis
ここに画像の説明を挿入
Redis<key,value>Rediskeyvalue

* key=表名:主键值:列名
* value=列值 

⑦データの挿入:Redisデータを挿入するには、最初に合計を設計しkey、コマンドをvalue使用してsetデータを挿入するだけです。たとえば、Course新しいコース「ビッグデータ」をテーブルに挿入する場合、4 単位、操作コマンドと結果は次の図に示されています。
ここに画像の説明を挿入
⑧データ削除:Redisデータを削除するための特別なコマンド—コマンドがありdel、コマンド形式は「delキー」です。“del Course:8:Cname”したがって、以前に追加したコース「ビッグデータ」を削除したい場合は、次の図に示すようにコマンドを入力するだけで済みます。コマンドを入力すると、データが正常に削除されたことを示すコマンド“del Course:8:Cname”が返されます。“1”
ここに画像の説明を挿入
⑨データのクエリ:Redisクエリを実行する最も簡単な方法は、getコマンドを使用することです。コマンド クエリを入力しますget。出力が空の場合は、データが正常に削除されたことを意味します。
ここに画像の説明を挿入

(2)MongoDB設置および使用。

MongoDB基本的なコマンド   を完了しますshellMongoDBリレーショナル データベースと非リレーショナル データベースの中間の分散ファイル ストレージに基づいたデータベースで、非リレーショナル データベースの中で最も機能が高く、リレーショナル データベースに最も似ています。サポートするデータ構造は非常に緩く、同様のjson形式であるbsonため、より複雑なデータ型を格納できます。Mongo最大の特徴は、サポートするクエリ言語が非常に強力で、その構文はオブジェクト指向クエリ言語に似ており、リレーショナルデータベースの単一テーブルクエリと同様の機能のほとんどを実現でき、インデックス作成もサポートしています。データ。
apt-getオンラインインストール用のコマンドを使用するとMongoDB、多くの不可解な問題を回避できます。
コマンド ラインをsudo apt-get install mongodbダウンロードしてインストールできますMongoDB。デフォルトでインストールされるバージョンは ですMongoDB 2.6.10が、MongoDBにアップグレードされています3.2.8。ソフトウェア ソースを追加することで、このバージョンをインストールできます3.2.8

a. まずターミナルを開き、パブリックをkeyパッケージ マネージャーにインポートします
ここに画像の説明を挿入
b.MongoDBファイルのリストを作成します。
ここに画像の説明を挿入
c. パッケージ マネージャーを更新し、インストールしますMongoDB
ここに画像の説明を挿入
ここに画像の説明を挿入
d.MongoDBインストールが完了したら、ターミナルに次のコマンドを入力してMongoDBバージョンを表示します。
ここに画像の説明を挿入
MongoDBスタートとストップ。

ここに画像の説明を挿入
MongoDBコマンドshellモードに入ります。デフォルトで接続されるデータベースはtestデータベースです。その前に、それが起動されていることを確認してくださいMongoDB。そうでないとエラーが発生します。起動後の正常な操作は次のとおりです。
ここに画像の説明を挿入
④共通操作コマンド
データベース関連
show dbs: データベースリストの表示
show collections: 現在のデータベース内のコレクションの表示 (リレーショナルデータベースのテーブルと同様table)
show users: すべてのユーザーの表示
use yourDB: 現在のデータベースの切り替えyourDB
db.help(): データベース操作コマンドの表示
db.yourCollection.help(): コレクション操作コマンド (yourCollectionコレクション名) の表示
ここに画像の説明を挿入

MongoDBデータベースを作成するコマンドはありません。データベースを作成する場合は、最初にコマンドを“School”実行してuse Schoolから、いくつかの操作 (コレクションの作成などdb.createCollection('teacher')) を実行すると、 という名前のデータベースを作成できます“School”
ここに画像の説明を挿入
Schoolデータベースを例に挙げると、データベース内にSchool2つのコレクションteacherと合計を作成しstudentstudentコレクション内のデータに対して追加、削除、変更、クエリなどの基本操作を実行します(コレクションはCollectionリレーショナルデータベースのテーブルに相当しますtable)。
a.Schoolデータベースに切り替えます (Schoolデータベースに切り替えます。データベースをMongoDB事前に作成する必要はありませんSchool。データベースは使用時に自動的に作成されます)
ここに画像の説明を挿入
b. 作成Collection(集約コレクションを作成します。MongoDB実際、データを挿入するとき、対応するコレクションも自動的に作成されます (事前定義されたコレクションは必要ありません)
ここに画像の説明を挿入
c. データベースの作成と同様に、MongoDBデータが挿入されるとコレクションが自動的に作成されます。insertデータを挿入するには、と の2 つの方法がありますsave
ここに画像の説明を挿入
データが正常に挿入されました
ここに画像の説明を挿入

_id同様に、データを更新します
ここに画像の説明を挿入

_id同じですが、挿入に失敗しました。操作はありません。

jsond. 追加されたデータの構造は、形式が許容できる限り緩く、列の属性は固定されず、追加されたデータが優先されます。最初にデータを定義してから挿入すると、複数のデータを一度に挿入できます。
ここに画像の説明を挿入

e. 上記の例を実行すると、studentこれは自動的に作成されます。MongoDBこれは、事前に定義する必要がなく、collection最初のデータ挿入後にcollection自動的に作成されることを示しています。
ここに画像の説明を挿入

⑥ データの検索
a.db.student.find()すべてのレコードをクエリします。に相当:select * from student
ここに画像の説明を挿入

b.db.student.find({sname: 'zhangsan'})レコードのsname='zhangsan'クエリ。に相当:select * from student where sname='zhangsan'
ここに画像の説明を挿入

c.db.student.find({},{sname:1, sage:1})指定された列snamesageデータをクエリします。以下と同等: select sname,sage from student:1 は列

snameを返すことを意味し、デフォルトのフィールドも返されます。これをwrite に追加することもできます(返さないことを意味します) 。デフォルトのフィールドは返されませんsname_id_id:0_id{sname: 1, sage: 1,_id:0}_id
ここに画像の説明を挿入

d.db.student.find({sname: 'zhangsan', sage: 22})
and条件を指定してクエリを実行します。に相当:select * from student where sname = 'zhangsan' and sage = 22
ここに画像の説明を挿入

e.db.student.find({$or: [{sage: 22}, {sage: 25}]})
or条件付きクエリ。に相当:select * from student where sage = 22 or sage = 25
ここに画像の説明を挿入

f. db.youCollection.find(criteria, filterDisplay) criteria:
クエリ条件、オプションfilterDisplay: 指定された列データの表示など、データの一部をフィルタリングして表示します、オプション (選択した場合、最初のパラメータは省略できません。クエリ条件が空の場合、プレースホルダとして使用できます{})
ここに画像の説明を挿入

⑦ data を変更するdb.youCollection.update(criteria, objNew, upsert, multi )

criteria: updateための、sql updateクエリ:whereの背後にあるオブジェクトや一部の更新演算子 ( など) と同様に、クエリ内で次のように理解することもできます。:レコードが存在しない場合、挿入するかどうかに関係なく、デフォルトでは挿入されません。:デフォルトでは、最初に見つかったレコードのみが更新されます。このパラメータが true の場合、条件に従って検出されたすべての複数のレコードが更新されます。デフォルトでは、最初に一致したデータのみが変更されます。ここで、 と は必須パラメータオプションのパラメータです。これは次と同等ですobjNewupdate$setsql updateset

upsertupdateobjNewtruefalse
multimongodbfalsefalse

criteriaobjNewupsertmultidb.student.update({sname: 'lisi'}{$set: {sage: 30}}, false, true)
update student set sage =30 where sname = 'lisi'
ここに画像の説明を挿入

⑧データの削除db.student.remove({sname: 'chenliu'})に相当します。delete from student where sname='chenliu'
ここに画像の説明を挿入

⑨コレクションの削除
ここに画像の説明を挿入

shellコマンドモードの終了コマンドモード
の入力exitまたはCtrl+C終了shell
ここに画像の説明を挿入
ここに画像の説明を挿入

(3)Java APIペアMongoDBを使用してアクセスします。

Java MongoDB Driverドライバーjarパッケージがダウンロードされ、’/home/hadoop/下载/’ディレクトリに保存されました。
ここに画像の説明を挿入
② を開いてEclipse新規作成しますJava Project
ここに画像の説明を挿入
ドライバー パッケージをインポートしますmongodb-driver-3.8.0.jar
ここに画像の説明を挿入
新規作成内部のコードClass Average_grade
ここに画像の説明を挿入
ここに画像の説明を挿入
をクリアしAverage_grade.javaてから、studentこのファイル内のコレクションの追加、削除、変更、クエリ操作を実行するための完全なコードを入力します。
ここに画像の説明を挿入
プログラムが実行されると、Console実行結果情報が下部の「 」パネルに表示されます。
ここに画像の説明を挿入
プログラムが実行されるたびに、shell結果を表示するモードに戻ることができます。例:eclipse更新操作を実行した後、shellモードに入ると、コレクションのすべてのデータdb.student.find()を表示できます。student
ここに画像の説明を挿入

(4)Redis従来のMysqlデータベースとの違いは何ですか?

mysqlリレーショナルデータベースであり、主に永続的なデータを保存するために使用され、データはハードディスクに保存され、読み取り速度は比較的遅いです。redisはいNOSQL、つまり、非リレーショナル データベースはキャッシュ データベースでもあり、データはキャッシュに保存されます。キャッシュは読み取りが速く、操作効率を大幅に向上させることができますが、保存時間は限られています。
mysql永続ストレージ用のリレーショナルデータベースとしては、データベースへのアクセスを繰り返すと、アクセス要求が発生するたびにI/O操作が発生するという比較的弱点があります。
1 つ目: データベースへの繰り返し接続に多くの時間がかかり、動作効率が低下しすぎます。2
つ目: データベースへの繰り返しアクセスもデータベースに過剰な負荷をもたらすため、この時点でキャッシュの概念が派生しました。 。
③キャッシュとは、データ交換のためのバッファ()でありcache、ブラウザがリクエストを実行すると、まずキャッシュを検索し、存在する場合は取得し、存在しない場合はデータベースにアクセスします。キャッシュの利点は、読み取り速度が速いことです。
redisデータベースはキャッシュデータベースとなっており、頻繁に使用するデータを格納することで、データベースへのアクセス回数を減らし、業務効率を向上させます。

(5)MongoDBどのような特徴があり、Mysqlデータベースとの違いはどこにありますか?

特徴:文書データベースに属する
Mongodb非リレーショナルデータベース()です。nosqlドキュメントはmongoDBデータベース内のデータの基本単位です。リレーショナル データベースの行に似ています。複数のキーと値のペアが整然と配置されてドキュメントを形成します。構文はオブジェクト指向に似ています。javascriptクエリ言語で、セット指向のフリーモードのドキュメント タイプ データベースです。
ストレージ方式: 仮想メモリ + 永続性。クエリ文: 独自のクエリメソッドですMongodb適切なシナリオ: イベント記録、コンテンツ管理、ブログ プラットフォームなど。
アーキテクチャの特徴: 高可用性は、レプリカ セットと断片化を通じて実現できます。
データ処理:データはハードディスクに保存されますが、頻繁に読み込む必要があるデータはメモリにロードし、物理メモリにデータを格納することで高速な読み書きを実現します。
成熟度と幅広さ: 新興データベースは成熟度が低く、Nosqlデータベースの中ではリレーショナル データベースに最も近く、比較的完成度が高くDB、適用対象人口は常に増加しています。

違い:
MongoDBもう1つの最大の欠点は、多くのスペースを必要とすることです。MongoDBデータベース内で頻繁にデータの追加、削除、変更を行う場合、データサイズが変わるなどレコードが変更されると、このときにデータの断片が発生する可能性が高くなります。その結果、インデックスにパフォーマンスの問題が発生することが 1 つあります。
MySQLどちらもMongoDB一般的なオープン ソース データベースですが、MySQL従来のリレーショナル データベースであるMongoDBのに対し、ドキュメント データベースとも呼ばれる非リレーショナル データベースはNoSQLデータベースの一種です。それぞれに独自の利点があり、重要なのは、それらがどこで使用されるかを確認することです。したがって、ステートメントはリレーショナル データベースの標準言語であるため、私たちがよく知っているSQL(フルネーム) ステートメントStructured Query Languageは適用できません。MongoDBSQL

おすすめ

転載: blog.csdn.net/weixin_51571728/article/details/125275880