hiredis存储二进制文件,比如char数组的方法,例如:
char value[20]={0}
value[0]='a'
value[15]='b'
这种情况直接调用redisCommand(c, "set key %s",value),是不可行的,因为遇到结束符'\0'会停止,但redis是二进制安全的,hiredis也提供了二进制安全的方法,即redisCommand(c, "set key %b",value,20),一个%b对应一个char指针加缓存的长度,下面给出完整代码:
int main()
{
redisContext *c = redisConnect("127.0.0.1", 9600);
redisReply *reply = (redisReply *)redisCommand(c, "AUTH %s", "123456");
char value[20]={0};
value[0]='a';
value[19]='b';
reply = redisCommand(c, "set %b %b", "keyb",(size_t) 4,value,(size_t) 20);
reply = redisCommand(c, "get keyb");
for(int i=0;i<reply->len;i++)
{
if(*(reply->str+i)==0)
printf("\\x00");
else
printf("%c",*(reply->str+i));
}
print("\n")
freeReplyObject(reply);
redisFree(c);
return 0;
}
输出结果:
a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00b
分类:
开源库
, 分布式系统/消息队列
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2021-09-09 C++中的STL中map用法详解
2014-09-09 make报错:"/usr/bin/ld: cannot find -lXXX"