首页
导航
博客
电子书
算法
众创
代码
随贴
关于我们
您好,欢迎来到码863代码分享网! 请
[登录]
/
[注册]
搜 索
标题:
*
140
字
TAG标签:
(用空格隔开)
30
字
恢复历史版本:
请选择分类
html
python
javascript
php
sql
c
c++
c#
java
plain
所有人可见
仅自己可见
编辑器:UEditor
编辑器:TinyMCE
编辑器:Editor.md
HTML转MD
HTML转MD2
<p><br/></p><p>hiredis是一个非常全面的C语言版redis接口库,支持所有命令、管道与脚本。</p><p><br/></p><p>使用C语言客户端(hiredis)连接Redis,需要先安装编译环境以及hiredis,以CentOS为例,介绍C客户端环境搭建。</p><p><br/></p><p>第0步:准备工作</p><p>华为云上购买1台弹性云服务器ECS(我选了CentOS 6.3),一个分布式缓存实例(DCS for Redis),我选了个单机实例。</p><p><br/></p><p>注意ECS和缓存实例配置相同的VPC和安全组,确保网络互通。</p><p><br/></p><p>第1步:安装gcc、make和hiredis</p><p>如果系统没有自带编译环境,可以使用yum方式安装。</p><p><br/></p><p>yum install gcc make</p><p><br/></p><p>下载并解压hiredis</p><p><br/></p><p>wget https://github.com/redis/hiredis/archive/master.zip;</p><p><br/></p><p>进入到解压目录后编译安装</p><p><br/></p><p>make </p><p><br/></p><p>make install</p><p><br/></p><p>安装完成后即可尝试连接。</p><p><br/></p><p>第2步:连接Redis</p><p><br/></p><p>关于hiredis的使用,redis官网给了详细的使用介绍。这里举一个简单的例子,介绍连接、密码鉴权、set以及get方法。</p><p><br/></p><p>编辑连接demo实例,如:</p><p><br/></p><p>vim connRedis.c</p><pre class="brush:cpp;toolbar:false">#include <stdio.h> #include <stdlib.h> #include <string.h> #include <hiredis.h> int main(int argc, char **argv) { unsigned int j; redisContext *conn; redisReply *reply; if (argc < 3) { printf("Usage: example {instance_ip_address} 6379 {password}\n"); exit(0); } const char *hostname = argv[1]; const int port = atoi(argv[2]); const char *password = argv[3]; struct timeval timeout = { 1, 500000 }; // 1.5 seconds conn = redisConnectWithTimeout(hostname, port, timeout); if (conn == NULL || conn->err) { if (conn) { printf("Connection error: %s\n", conn->errstr); redisFree(conn); } else { printf("Connection error: can\'t allocate redis context\n"); } exit(1); } /* AUTH */ reply = redisCommand(conn, "AUTH %s", password); printf("AUTH: %s\n", reply->str); freeReplyObject(reply); /* Set */ reply = redisCommand(conn,"SET %s %s", "welcome", "Hello, DCS for Redis!"); printf("SET: %s\n", reply->str); freeReplyObject(reply); /* Get */ reply = redisCommand(conn,"GET welcome"); printf("GET welcome: %s\n", reply->str); freeReplyObject(reply); /* Disconnects and frees the context */ redisFree(conn); return 0; }</pre><p><br/>保存后退出,执行以下命令编译:</p><p>gcc connRedis.c -o connRedis -I /usr/local/include/hiredis -lhiredis</p><p><br/></p><p>如果有报错,可查找hiredis.h文件路径,并修改编译命令。</p><p><br/></p><p>编译完后得到一个可执行文件connRedis,</p><p><br/></p><p>测试以下命令测试连接:</p><p><br/></p><p> ./connRedis {redis_ip_address} 6379 {password}</p><p><br/></p><p>得到以下回显,则demo正常运行:</p><pre class="brush:bash;toolbar:false">[root@ecs-herucentos heru]# ./connRedis 192.168.0.171 6379 Heru+123 AUTH: OK SET: OK GET welcome: Hello, DCS for Redis! [root@ecs-herucentos heru]#</pre><p>注意,如果运行报错找不到hiredis库文件,可参考如下,将相关文件拷贝到系统目录,并增加动态链接。</p><pre class="brush:bash;toolbar:false">mkdir /usr/lib/hiredis cp /usr/local/lib/libhiredis.so.0.13 /usr/lib/hiredis/ mkdir /usr/include/hiredis cp /usr/local/include/hiredis/hiredis.h /usr/include/hiredis/ echo \'/usr/local/lib\' >>/etc/ld.so.conf ldconfig</pre><p><br/>以上so文件与.h文件的位置,需要替换成实际文件位置。</p>
CopyRight 2002~2023 精通2100网 联系邮箱:qqtxt@163.com
版权所有:精通2100网
湘ICP备2023018646号-1
MYSQl共执行 4 个查询,用时 0.0017800331115723 秒,PHP脚本用时 0.004424 秒,占用内存 0.526 MB,Gzip 已启用