0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Redis(Valkey)でお店にいる人の数を数える

Last updated at Posted at 2025-04-12

Valkeyとは

Valkeyは、オープンソース(BSD)の高性能キー/バリュー型データストアです。

なぜ、インメモリなのか。なぜ、Valkeyなのか

  • インメモリは、コストに対するリソース&コスト効率が高い
  • インメモリで人気があったのはRedisだが、Valkeyのほうがより安価かつAWSの影響が大きいValkeyを推奨

実際にやってみよう-イメージ図:ショップにいる人は何人ですか?

image.png

セットアップ

手っ取り早く開始するためには、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]コマンド関連

要素の追加・削除・カウント

メンテナンスその他

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?