0
0

はじめに

この記事ではAmazon CodeCatalystのDev Environmentで作成した環境を使って、RedisからフォークされたValkeyを起動して触る話を書きます。主な内容としては実践したときのメモを中心に書きます。(忘れやすいことなど)
誤りなどがあれば修正していく想定です。

Valkeyとはなんぞや

簡単に言うと、RedisのようなキャッシュのOSSです。公式サイト
Redisのようなと表現しましたが、実態はRedisのフォークです。

※フォーク:リポジトリの引用、コピーのこと。みんながよく知るフォークのように取り出すような意味がありますが、元のリポジトリがなくなるわけではないです。

以下、公式リポジトリより引用

Valkey is a high-performance data structure server that primarily serves key/value workloads. It supports a wide range of native structures and an extensible plugin system for adding new data structures and access patterns.

訳:Valkeyは、主にキー/バリューのワークロードに対応する高性能なデータ構造サーバーです。幅広いネイティブ構造をサポートし、新しいデータ構造やアクセスパターンを追加するための拡張可能なプラグインシステムを備えています。

引用:valkey-io/valkey GitHub

検証環境について

検証環境は以下の記事を参考に作成するため、一部省略します。なお、今回はAWS Builder IDを使ってセットアップします。

検証環境の作成

では、実際に環境を構築してやっていきたいと思います。

Dev EnvironmentsでVisual Studio Codeの開発環境を構築する

以下のURLにアクセスしてsource-repositoriesを開きます。
{スペース名}{プロジェクト名}は任意の名前

https://codecatalyst.aws/spaces/{スペース名}/projects/{プロジェクト名}/source-repositories

Create Dev Environmentの右にある逆三角形をクリックします。

Screenshot 2024-05-30 at 13.04.56.png

いくつか環境が選択できますが、ここではVisual Studio Codeを選択します。

Screenshot 2024-05-30 at 13.05.25.png

開発環境の設定と起動

開発環境を選択すると設定画面に遷移します。ブランチ、エイリアス、VPCコネクションなどの設定がありますが、ここではブランチのみ設定してCreateをクリックします。

Dev Environment Configurationの設定はデフォルトのSmall 2vCPU, 4GB RAMで進めます。

Screenshot 2024-05-30 at 13.05.38.png

Createを実行するとローカルにインストールされているVisual Studio Codeから通知が届きます。Open Visual Studio Code.appをクリックします。

Screenshot 2024-05-30 at 13.06.44.png

Visual StudioCodeの画面でポップアップが表示されるのでOpenをクリックします。

Screenshot 2024-05-30 at 13.07.13.png

これでAWS上にVisual Studio Codeを起動してローカルのVisual Studio Codeから接続できました。

接続確認

ターミナルを起動してuname -aを実行してみましょう。
まずはターミナルを起動します。TerminalをクリックしてNew Terminalを選択します。

新しいターミナルで以下のコマンドを実行します。

uname -a

実行結果

Linux ip-10-136-119-155.us-west-2.compute.internal 6.1.90-99.173.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Tue May  7 11:11:31 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

AWS上で起動しているターミナルであることが確認できました。

Dev EnvironmentでValkeyをセットアップする

今回はDockerコンテナを使って検証します。公式リポジトリ

利用Dockerイメージ

とりあえず、イメージをプルして実行してみましょう。

docker run --name valkey -d valkey/valkey:7.2.5

実行結果

[mde-user@ip-10-136-119-155 CodeCatalystNodeDev]$ docker run --name valkey -d valkey/valkey:7.2.5
Unable to find image 'valkey/valkey:7.2.5' locally
7.2.5: Pulling from valkey/valkey
09f376ebb190: Pull complete 
05595428be8a: Pull complete 
6c1cd24899a3: Pull complete 
5e249683c8ca: Pull complete 
fd565303d364: Pull complete 
b736e8ddbf87: Pull complete 
4f4fb700ef54: Pull complete 
92c9201ad3df: Pull complete 
Digest: sha256:372e508417aaaad888e5cbfa03def1d6026b012ed4c91266ff41001c38da3b0c
Status: Downloaded newer image for valkey/valkey:7.2.5
f6a565b6a9ff72ff352306577e4dbdecbc1b87270c9eac596efd89b754b8b95a

※イメージをプルする場合は以下のコマンドです。

docker pull valkey/valkey:7.2.5

Valkeyを操作してみる

コンテナが正常に起動しているかを確認するために以下のコマンドを実行します。

docker ps -a

実行結果

CONTAINER ID   IMAGE                 COMMAND                  CREATED         STATUS         PORTS      NAMES
f6a565b6a9ff   valkey/valkey:7.2.5   "docker-entrypoint.s…"   2 minutes ago   Up 2 minutes   6379/tcp   valkey

tcpの6379で実行されていることがわかります。6379というとRedisと同じポート番号ですね。
では、実際にコンテナの中に入ってみましょう。

docker exec -it valkey valkey-cli

実行結果

[mde-user@ip-10-136-119-155 CodeCatalystNodeDev]$ docker exec -it valkey valkey-cli
127.0.0.1:6379> 

簡単な操作をしてみる

key testに数値1をセットします。

set test 1

key testが存在するかを確認します。

EXISTS test

key testからバリューを取得します。

get test

key testからバリューを削除します。

DEL test 1

key testからバリューが削除されたかします。

get test

ここまでの実行結果

127.0.0.1:6379> set test 1
OK
127.0.0.1:6379> EXISTS test
(integer) 1
127.0.0.1:6379> get test
"1"
127.0.0.1:6379> DEL test 1
(integer) 1
127.0.0.1:6379> get test
(nil)

セット操作をしてみます。

SADD settest1 1
SADD settest1 2
SMEMBERS settest1

実行結果

127.0.0.1:6379> SADD settest1 1
(integer) 1
127.0.0.1:6379> SADD settest1 2
(integer) 1
127.0.0.1:6379> SMEMBERS settest1
1) "1"
2) "2"
127.0.0.1:6379> 

ハッシュ操作を操作してみます。

HSET hasht field 0
HSET hasht field1 1
HSET hasht field2 2
HGETALL  hasht

実行結果

127.0.0.1:6379> HSET hasht field 0
(integer) 1
127.0.0.1:6379> HSET hasht field1 1
(integer) 1
127.0.0.1:6379> HSET hasht field2 2
(integer) 1
127.0.0.1:6379> HGETALL  hasht
1) "field"
2) "0"
3) "field1"
4) "1"
5) "field2"
6) "2"
127.0.0.1:6379>

最後にquitして終了しましょう。

quit

まとめ

Amazon CodeCatalystのDev EnvironmentでValkeyを使ってみました。
実際にRedisを使ったことのある筆者が触ってみてもとくに違和感なく触れたので安心しました。

他、気になるところというと、RedisのSDKからデータを引用できるのか
Redisに対応しているOSSと併用したらどうなるのかなど気になることは多いです。

たとえば、Redashを使っている場合はElasticache for redisを使っていると思いますが
Redashとの相性?はどんな感じなのかなと気になりました。今後も注目していきたいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0