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で動作にチャレンジ
[外部サイト参照]
mongo
redis

コメント

過去30日間に良く読まれた記事

miniPCのBMAXでWindows11のsecure boot設定漏れでトラブル発生

Windows95/98のPCゲームをUbuntu/LinuxMintの最新PCで楽しむ方法 ( KVM / Wine / dosbox-x / midi )

LinuxMint/ubuntuにWine 11導入を試しました ( LinuxMint 21.3 / 22.3 ubuntu 22.04 / 26.04 Wine 11.0 / 11.6 / 11.8 / 11.13 )