アクセスカウンター実装
2026/02/11
「実装」とは漫画 劇光仮面に出てくる言葉として有名だが、劇光仮面で使われている「実装」のニュアンス通り、実に意味のある機能を実装した。アクセスカウンターだ。ブログと言えばアクセスカウンター。 ページ上部におそらく表示されているはずだ。
仕組みはシンプルで、Redisにインクリメントしているだけ。本当は外部ストアに頼らずカウントアップしたかったが、どう考えてもトリッキーになるだけで技術的な面白みはなさそうだったのでシンプルにRedisに着地した。RedisはUpstashの無料プランを利用している。
Redisへの接続はライブラリを使わず自前でTCP接続してコマンド実行している。実はRedisのプロトコルは簡単。
*2
$4
INCR
$7
counterこの文字列を送信するだけで INCR counter を実行するのと同じ。レスポンスも似たような構造なのでパースも簡単。一応解説しておくと、最初の *2 はコマンドの引数の数を表す(INCR と counter の2個)。 $ は送信するデータの長さ。INCR は4文字なので $4 、その後にデータ自体。という感じ。
あと今日始めて知ったけど、cabal repl とやると rails console のようなREPLが起動できた。今まで ghci コマンドで頑張ってコードをペーストして実行してた。cabal repl ならプロジェクトコードを全部読んでくれるので動作確認が楽になった。