文档章节

使用Redis客户端hiredis遇到的一些问题

COSE
 COSE
发布于 2015/02/06 16:18
字数 205
阅读 139
收藏 0


在使用Redis客户端hiredis处理redis的命令时,当key或者value中包括空格时,遇到命令执行失败的问题。

具体情况如下:


#include <hiredis/hiredis.h>

int main(int argc, char const *argv[])
{
    redisContext *c = redisConnect("127.0.0.1", 6379);
    if (c != NULL && c->err) {
        printf("Error: %s\n", c->errstr);
    }

    redisReply *reply;

    // 执行命令: SET foo "bar bar"
    // 直接使用字符串拼接会执行错误
    reply = redisCommand(c, "SET foo \"bar bar\"");
    if (reply->type == REDIS_REPLY_ERROR) {
        printf("Error - 1: %s\n", reply->str);
    }

    // 通过%s代替后可以正确执行
    reply = redisCommand(c, "SET foo %s", "bar bar");
    if (reply->type == REDIS_REPLY_ERROR) {
        printf("Error - 2: %s\n", reply->str);
    }
    
    return 0;
}


程序的执行结果如下:

roo@roose:~/myredis$ cc hitest.c -lhiredis
roo@roose:~/myredis$ ./a.out 
Error - 1: ERR syntax error



© 著作权归作者所有

共有 人打赏支持
上一篇: Linux修改用户名
下一篇: Shell字符串比较
COSE

COSE

粉丝 6
博文 22
码字总数 10162
作品 0
南京
程序员
私信 提问
memlink性能测试、与redis,mysql的性能测试对比

这是来自 memlink 官方上的一份测试报告,首先得发表一下个人意见,nosql 拿来跟 mysql 做性能比较是不厚道的。 Introduction Memlink用于存储Key=>List数据,下面对比了不同数据存储引擎存储...

红薯
2011/04/12
6.7K
4
从hiredis使用出core谈谈redis多线程的使用

在实际工作中,我需要使用redis的客户端去连接redis,于是选择了hiredis客户端(公司强推)。 hiRedis 是 Redis 官方指定的 C 语言客户端开发包,支持 Redis 完整的命令集、管线以及事件驱动编...

jungleliu0923
2014/02/25
0
6
hiredis-win32+libevent

决定用redis作为cache服务器,要求其服务端和客户端都支持跨平台win和linux 但我发现redis(/作者)对windows态度极差,不考虑,不支持 微软公司的闲人们主动靠过去,推出win版。这么一来,r...

雅各宾
2013/07/25
0
0
hiredis能用于windows平台吗?

hiredis是redis的C语言客户端开发包,我看着资料好像是hiredis只支持linux,问问大牛hiredis是否支持windows,如何进行vs进行C开发?

iam9527
2014/04/04
828
1
CentOS编译swoole 的hiredis遇到的坑

在centos6.8的环境下,最开始编译swoole不带任何参数,没任何问题。今天在测试swoole的异步redis。编译hiredis后,再执行swoole相关测试脚本,总提示如下错误: 关于类似的问题,swoole官方文...

jichun
05/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

编程价值观、原则、模式

读自《实现模式》 模式,即是针对特定问题的通用解决方案。 每个模式都承载这一点点理论,但实际编程中存在着一些更加深远的影响力,远不是孤立的模式所能概括的。 价值观是编程过程的统一支...

遥借东风
6分钟前
0
0
php分割二级域名做跳转处理方法

使用php中的全局变量 $_SERVER['HTTP_HOST'] ,可以获得用户当前访问的域名字符串,在这里面查询自己定义的各个子域名字符串,然后使用header函数重定向到不同的页面 代码如下 if( strpos($...

Mr_Azaz
8分钟前
0
0
容器之Zookeeper的使用

我们使用zookeeper时,都是在Linux上安装zookeeper,之后启动时要加入配置文件。 使用docker之后,我们可以直接使用镜像运行容器,镜像可以从docker.hub上下载,地址是https://hub.docker.co...

克虏伯
昨天
3
0
esxi 更换ssl证书

概述 就是想换一个证书而已,你可以通过下面的途径去申请一个泛解析域名的证书之后再esxi上安装上 使用阿里云域名api申请Let’s Encrypt泛域名免费ssl证书 申请完成证书之后进行下一步 操作 ...

bboysoulcn
昨天
1
0
PLC编程入门:梯形图

梯形图(LAD)是PLC编程的最佳可视化语言,它看起来非常类似于继电器电路图,因此如果 你对继电器控制和电子电路有所了解的话,那么学起来会非常容易! 在这个教程中,我们将学习关于使用梯形...

汇智网教程
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部