Ubuntu/LinuxMintのDocker環境でKey Value Databaseを調べました ( mongoDB / Redis )
1.概要
Key Value Databaseで以前試験をしたことがあるmongoDBを調べました。今回もDocker環境を利用するのですが、MongoとMongoDBが存在して、変わっているようです。MongoのDocker Hubを参考にして確かめました。
2.詳細
(1) Key Value DatabaseのmongoDB
最低限の動作試験を目指します。
(a) docker-compolse.yml
以下のようにdocker-compose.ymlを作成します
ersion: '3'
services:
mongo:
image: mongo
container_name: mongo-container
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: example
(b) 起動
$ docker-compose up -d
(c) containerにloginして、mongoを操作します。
mongoにlogin後、testtableを作成して、データを保存。
保存したデータを読み出します。
JSON形式のデータを保存しているだけのように見えます。
$ docker exec --user root -it mongo-container
# mongosh -u root -p example
> db.testtable.insert({ubuntu:"20.04"})
{
acknowledged: true,
insertedIds: { '0': ObjectId('67304cbacb80b9a2c6fe6911') }
}
> db.testtable.find()
[ { _id: ObjectId('67304cbacb80b9a2c6fe6911'), ubuntu: '20.04' } ]
> exit
# exit
(2) Key Value DatabaseのRedis
Key Value DatabaseのRedisをネットで情報を見つけて、動かしてみました。Redisはmemory baseのKey Value Databaseなので、Disk上にどのように保管されるかも気になりました。この内容を記述します。
Docker環境で試験をしました。Base環境はUbuntu-20.04.6です。DockerはUbuntu標準を利用しました。
Docker-hubを参照して、Redis 7.4.1を選択して試験しました。
(a) docker-compose.yml
docker-compose.ymlを以下のように設定しました
version: '3.1'
services:
redis:
image: redis:7.4.1
container_name: redis-container
(b) container起動
$ docker-compose up -d
(c) containerへloginと簡単な試験
$ docker exec --user root -it redis-container /bin/bash
# redis-cli
> set ubuntu 20.04
OK
> get ubuntu
"20.04"
> exit
# redis-cli bgsave
# ls
dump.rdb
dump.rdb がバックアップファイルのようです。
# exit
$ docker-compose stop
$ docker-compose up -d
$ docker exec --user root -it redis-container /bin/bash
# redis-cli
> set ubuntu 20.04
OK
dump.rdsから起動時に復元されるようです
3.所見
Key Value databaseはキーと値がセットなので高速アクセスを期待できます。しかし、RDBなどのように関連性でデータを呼び出すことが難しいので使い方が難しいと感じています。速度優先の処理に活用するのが良い気がします。
参考
[本ブログ内参照]・ARM64のubuntu-arm64をKVMで動作にチャレンジ
コメント
コメントを投稿