sagantafスマートフォン用の表示で見るsagantaf機械学習やITインフラ、特にコンテナ関連の記事を書いているブログ。Store)として利用できるRedisとetcdのうち、どちらがより簡単に使い始められるか、シンプルな導入として適しているかを検証しました。どちらもDockerコンテナの形式で起動し、Pythonからの操作と、GUIでの操作を試しています。1.24.1etcd:3.4.3redis:5.0.7etcdまずはetcdです。下記のDockerHubにあるdocker-compose.ymlをダウンロードします。https://raw.githubusercontent.com/bitnami/bitnami-docker-etcd/master/docker-compose.ymlダウンロードしてきたら、中身を以下のように書き換えます。bridgeetcdコンテナに加えてpythonからetcdを操作するためにmyappコンテナも起動する設定にしています。-fさせておき、コンテナが起動し続けられるようにしています。内部ネットワークとしてetcdtestを作成し、コンテナ同士が疎通できるようにしています。作成したdocker-compose.ymlをもとにコンテナを起動させます。doneコンテナが二つ立ち上がればOKです。pythonからetcdを操作コンテナが二つ立ち上がったので、実際にPythonでetcdを操作してみます。sdkとなるetcd3をインストールします。etcd3続いて、そのままコンテナにログインした状態でpythonのインタプリタを起動し、etcd3をimportします。etcd3>>>実際にetcdに接続し、データの書き込みと読み込みをしてみます。0x7f1fcb3ba668>)接続の方法はシンプルにhostとportを指定するだけでできました。keyとvalueの設定や取り出しもputやgetで簡単にできました。keyとvalueの一覧はget_all()を使ってイテレータを取得する形になるため、表示させるにはfor文とprintを使う必要があります。Managerというツールを使ってみます。OS用のインストールファイルをダウンロードします。githubのreadme.mdにインストールファイルのリンクがあります。ダウンロードしてきたら、ダブルクリックして開きます。あるインストールページとして下記の画面が開きますので、etcd-managerのアイコンをApplicationsにドラック&ドロップしてください。見、反応がないですが、Applicationsにちゃんと追加されていました。クリックして起動します。初回起動時はMacのデフォルトの動作としてセキュリティに引っかかって起動させてくれません。セキュリティとプライバシー」の画面を開いて、下記のように”このまま開く”をクリックします。Managerが起動するはずです。下記のように接続先を入力する画面になりますので、etcdコンテナが起動しているホストのIPアドレスとポート番号2379を入力し、SAVEしてください。右上に緑のダイアログが表示されればOKです。keys」に移動すると、先ほど入力したkeyとvalueが表示されるのが分かります。GUIのツールインストールと操作は非常に簡単にできることがわかりました。見た目も分かりやすいし、サクサク動きます。クライアント側にインストールするタイプのツールであるため、開発者ごとにインストールしないといけない点がイマイチです。Redis続いてredisを構築して操作してみます。コンテナとして構築まずはdocker-compose.ymlファイルを作成します。appコンテナを用意しています。redis.confをボリュームマウント形式でコンテナに渡している部分です。そのため、redis.confを下記のように作成しておく必要があります。0.0.0.0Redisコンテナにアクセスするためのホストとポートの設定をしているだけです。作成したdocker-compose.ymlをもとにコンテナを起動させます。doneコンテナが二つ立ち上がればOKです。pythonからredisを操作コンテナが二つ立ち上がったので、実際にPythonで操作してみます。sdkとなるredisをインストールします。redis続いて、そのままコンテナにログインした状態でpythonのインタプリタを起動し、接続、書き込み、読み込みなどの操作をしてみます。r.keys()[b'hoge']接続やkey/valueの取り出しはetcdと同じく非常にシンプルにできました。etcdとは異なり、r.keys()の一文でvalueを取ってこれました。続いてGUI操作のためのツールを使ってみます。こちらはコンテナとしてサーバを起動してブラウザからアクセスできるタイプです。そのため、Macなどのローカル環境にインストールする必要はありません。Centerシンプルにコマンドでコンテナを起動させます。<ホストのIPアドレス>:8001にアクセスしてみます。最初は下記のようなシンプルな画面が表示されます。DATABASE」を選択して、redisコンテナに接続します。Nameは何でもOKです。HostはホストのIPアドレスを入力し、Portには6379を入力します。接続に成功したら、Redisコンテナにアクセスできるようになります。sdkで追加したkeyとvalueを確認できます。etcdと同じくGUIのツールインストールと操作は非常に簡単にできました。おわりにetcdはKubernetesで利用されているため、KVSとしてだけでも使っておいたら理解が深まり、一石二鳥かと思いましたが、Redisの方が使いやすく感じました。それぞれ得意な場面があり、用途に応じて使い分けられるのがベストだと思います。今回の目的である、どちらがより簡単に使い始められるか、シンプルな導入として適しているか、という意味ではRedisが適している!と言えそうです。»プロフィールid:sagantafなんでも自分の思ったこと、経験したことを書いて生きます。(1)月別アーカイブリンクはてなブログブログをはじめる週刊はてなブログはてなブログProはてなブログをはじめよう!sagantafさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。