auの日記

プログラミング初心者の日記。(auはハンドルネームです)

fakedredisで「hmset」を使えない場合の解決策

auです。

Pythonのライブラリ「fakeredis」を使ってRedisのテストをしています。その際に、hmsetが使えないと言うエラーが起きたため、解決策を描こうと思います。

実際に出たエラーを載せようと思ったのですが、なぜか再現ができませんでした。hmsetは使えないけどhsetなら使えるよ!みたいな文でした。

解決策

hmsetは、hsetをまとめて行う動作です。行数は多くなりますが、hsetに分解することで解決しました。

redis.hmset(key, {id: 1, name: 'au', age: 21})
redis.hset(key, id, 1)
redis.hset(key, name, 'au')
redis.hset(key, age, 21)

この2つは同じ動作をしています。

テスト用のRedisの空間を作れるのが一番だと思うのですが、やり方がいまいち分からなかった・・・。dockerを使っている関係か、同じRedisのコンテナが立ち上がってしまう。DBの番号を変えるだけでもいいかと思いましたが、将来を考えるとそれもあまりやりたくないと思いました。fakeredisにhmsetが追加されないかなあ。