私はredisでC構造を保存できるかどうかを知りたいです。しかし、私はhiredisのexample.cがそれを言及していないので、それを得る方法を知らない。hiredisによってRedisのC構造を保存できますか?私はそれを保存することができますが、それを得ることができません
バイナリセーフな文字列を使用してRedisに構造を保存します。そして私は+ OKを得ました。これは、それを正しく保存することを意味します。
保存するコードをここに
...
reply = redisCommand(c, "HMSET %s stat %b", rcvgetattr.pathname, sndgetattr.stbuf, sizeof(struct stat));
printf("Save status %s\n", reply->str);//that shows +OK
freeReplyObject(reply);
であり、私は戻って私のデータを取得しようとすると、私は私の構造を含むどの部分かわからないので、私が使用しているため、その後、私は
...
reply = redisCommand(c, "HMGET %s stat", rcvgetattr.pathname);
printf("status %s\n", reply->str);
freeReplyObject(reply);
を使用しますgdbとしてみてください。 disp (struct stat)reply->str
またはdisp (struct stat)reply->element->str
のようなコマンドを使用して、データが保存したばかりのデータと等しいかどうかを確認します。しかし、私は失敗しました。
データの保存場所を知っている人はいますか?
を助けるかもしれません!それは - > strですが、%bを使うときは、構造体そのものではなくポインタを渡す必要があります – bxshi
これは私にとってはうまくいくが、mytest *のresponse: reply->要素[0] - > str; –