はじめに
和ホラーを見たら怖さと後半の駆け足具合でヒヤヒヤしました。二度美味しいと感じた Gunzi です
突然ジョブキューに興味が湧いてきたので C++ で実装するために調べた。メモ
Redis クライアントは以下のページにまとめられている
今回は redis-plus-plus を使用する
準備
redis-plus-plus のページに沿ってインストールを進める
Redis サーバーは docker-compose を使用して構築する。今後、ジョブキューの記事を書く際に使用するためである
docker-compose.yml は以下の通り
version: '3' services: redis: image: "redis:latest" ports: - "6379:6379" volumes: - "./data/redis:/data"
使い方
Redis が取り扱うことのできるデータ構造についてはここを確認する
Redisのデータ型と抽象化の紹介 – Redis 日本語訳
というわけで何個か気になったやつを触ってみた
Redis クライアントに触ってみる · GitHub
ビルドはこれで
g++ -o app main.cpp /usr/local/lib/libredis++.a /usr/local/lib/libhiredis.a -pthread
実行結果
./app redis に ping を打つ PONG string 型 val list 型 nanigashi soregashi something (interger) 1 上限付リスト (interger) 5 nanigashi soregashi something hoge fuga 指定範囲外の要素を削除 nanigashi soregashi something キューの操作 nanigashi soregashi 5 秒後にタイムアウト 終了
感想
ジョブキュー作るなら Redis の LPUSH, RPOP があればひとまず形にはできそう
ポーリングは欠点があるそうなので、模索が必要だ
キューの実装には種類があるようなので、次回はいくつか作成してみたいと思う
RPOPLPUSH – Redis 日本語訳