ドキドキするとき無敵でしょ

映画とプログラミングの話

C++ の Redis クライアントを使う

はじめに

和ホラーを見たら怖さと後半の駆け足具合でヒヤヒヤしました。二度美味しいと感じた Gunzi です

突然ジョブキューに興味が湧いてきたので C++ で実装するために調べた。メモ
Redis クライアントは以下のページにまとめられている

redis.io

今回は redis-plus-plus を使用する

github.com

準備

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 日本語訳