QA@IT

今つないでいる Redis サーバのバージョンが知りたい

2917 PV

環境にすでに複数のRedisサーバが動いていて、それらは徐々に更新されていく計画なのですが、更新が完了するまでのしばらくの間、新旧のバージョンが混在する瞬間があることが判明しました。

これを、繋いだ側のクライアントから、バージョンを確認しながら適切なクエリを出しわけたいと思います、しかし、バージョンを確認する方法がよく分かりません。

Redisサーバのバージョンを知る方法はありますでしょうか。クライアント側はredis-rbを使っています。

回答

redis = Redis.new
redis.info['redis_version']

でとれます。

が、接続する時点でRedisのバージョンがわからないという状況がよくわからないです。twemproxyとか使って新旧混在?毎回動的にクエリーするコストを払うよりも、もっといい方法があるような気はします。。。

編集 履歴 (0)
  • いや、とれないですねえ。なにがいけないんですかねえ。

    >> r = Redis.new url: "redis://localhost:6379"
    => #<Redis client v3.0.2 for redis://localhost:6379/0>
    >> r.info['redis_version']
    => "redis_version"
    -
  • いい方法に関しては「とっととバージョンアップして全部同じ環境にする」で衆目の一致するところかと思います… -
  • それは変ですねぇ。r.infoってやると何がでます? -
  • あわせて、redis-cli infoも。 -
ウォッチ

この質問への回答やコメントをメールでお知らせします。