我在centos6中使用hiredis客户端连接redis服务器,并使用它的redisAppendCommand()向服务器发送命令。
redisContext *redisConnect(ip,port);
std::string value = "E 1";
std::string field_name = "field";
std::string id_code = "id";
std::string key = "HSET type:info:"+ id_code + " " + field_name + " " +value;
redisAppendCommand(_contxt, key.c_str());
它无法按我要求将值设置为E 1然后我将代码更改为:
redisContext *redisConnect(ip,port);
std::string value = "E 1";
std::string field_name = "field";
std::string id_code = "id";
std::string key = "HSET type:info:"+ id_code + " " + field_name + " \"" +value + "\"";
redisAppendCommand(_contxt, key.c_str());
但是值将包含\”作为其内容,因此值将变为**\“E 1",我只想知道是否有任何方法可以使用hiredis将值设置为E 1**?谢谢。
1条答案
按热度按时间9jyewag01#
您可以使用格式字串来指定命令参数:
%b
在格式字符串中表示二进制字符串,通过该标志可以指定键名、字段名和值的任意字符,由于是二进制字符串,所以需要指定字符串的长度。