Valkeyとは
Valkeyは、オープンソース(BSD)の高性能キー/バリュー型データストアです。
なぜ、インメモリなのか。なぜ、Valkeyなのか
- インメモリは、コストに対するリソース&コスト効率が高い
- インメモリで人気があったのはRedisだが、Valkeyのほうがより安価かつAWSの影響が大きいValkeyを推奨
実際にやってみよう-イメージ図:ショップにいる人は何人ですか?
セットアップ
手っ取り早く開始するためには、dockerをお勧めします。
宣伝:dockerはどうやってインストールすればいいんだっけ?
下記の記事をご利用ください。
準備が整ったら、下記のコマンドで開始する
docker run -d --name valkey -it --rm valkey/valkey:latest
docker exec -it valkey valkey-cli
REDIS
初期状態
朝、顧客はいませんでした。
127.0.0.1:6379> ZMSCORE STORE_1 "CUSTOMER1" "CUSTOMER2" "CUSTOMER3"
1) (nil)
2) (nil)
3) (nil)
127.0.0.1:6379> ZCARD STORE_1
(integer) 0
追加とカウント
朝、一人の顧客が来ました
127.0.0.1:6379> ZADD STORE_1 GT 202404120000 "CUSTOMER1"
(integer) 1
127.0.0.1:6379> ZMSCORE STORE_1 "CUSTOMER1" "CUSTOMER2" "CUSTOMER3"
1) (double) 202404120000
2) (nil)
3) (nil)
127.0.0.1:6379> ZCARD STORE_1
(integer) 1
値の更新
また次の日、一人の顧客が来ました。前回と同一人物だったので、値を上書きます。
127.0.0.1:6379> ZADD STORE_1 GT 202404110000 "CUSTOMER1"
(integer) 0
127.0.0.1:6379> ZMSCORE STORE_1 "CUSTOMER1" "CUSTOMER2" "CUSTOMER3"
1) (double) 202404120000
2) (nil)
3) (nil)
127.0.0.1:6379> ZADD STORE_1 GT 202404130000 "CUSTOMER1"
(integer) 0
127.0.0.1:6379> ZMSCORE STORE_1 "CUSTOMER1" "CUSTOMER2" "CUSTOMER3"
1) (double) 202404130000
2) (nil)
3) (nil)
別の値をカウントする
二人目の顧客が来ました
127.0.0.1:6379> ZADD STORE_1 GT 202404130000 "CUSTOMER2"
(integer) 1
127.0.0.1:6379> ZMSCORE STORE_1 "CUSTOMER1" "CUSTOMER2" "CUSTOMER3"
1) (double) 202404130000
2) (double) 202404130000
3) (nil)
127.0.0.1:6379> ZCARD STORE_1
(integer) 2
特定のレンジの値だけをカウントする
20240414にいたお客は何人でしょうか?
127.0.0.1:6379> ZMSCORE STORE_1 "CUSTOMER1" "CUSTOMER2" "CUSTOMER3"
1) (double) 202404130000
2) (double) 202404140000
3) (nil)
127.0.0.1:6379> ZCOUNT STORE_1 202404140000 Inf
(integer) 1
127.0.0.1:6379> ZCOUNT STORE_1 202404140001 Inf
(integer) 0
値を消す
お客様が帰ってしまいました。
127.0.0.1:6379> ZREM STORE_1 "CUSTOMER1"
(integer) 1
127.0.0.1:6379> ZMSCORE STORE_1 "CUSTOMER1" "CUSTOMER2" "CUSTOMER3"
1) (nil)
2) (double) 202404140000
3) (nil)
値のクリーニング
4/14は終わりました。全員顧客がいなかったので、古いデータを消しましょう
127.0.0.1:6379> ZMRANGEBYSCORE STORE_1 202404140000 202404150000
(integer) 1
127.0.0.1:6379> ZMSCORE STORE_1 "CUSTOMER1" "CUSTOMER2" "CUSTOMER3"
1) (nil)
2) (nil)
3) (nil)
参考文献
[公式docs]コマンド関連
要素の追加・削除・カウント
メンテナンスその他