1 实现功能

  • 1.1 在Linux下通过C++代码调用hiredis的接口,实现连接;
  • 1.2 在redis里面建立Hash类型值;
  • 1.3 从数据库中取出数据

执行之前需要安装redis的调用接口hiredis,hiredis的安装包如下:

https://download.csdn.net/download/taw19960426/84047154

2 结果显示

3 编译命令

3.0 首先在服务器打开redis服务器

redis-server # 默认启动

3.1 在Linux下面的编译命令如下:
首先先找到hiredis.h的位置:

find / -name “hiredis.h”
/usr/local/include/hiredis/hiredis.h

 g++ *.cpp -I/usr/local/include/hiredis -lhiredis
#/usr/local/include/hiredis 就是hiredis.h所在的目录

3.2 因为我是在windows下通过vs2017(vs加载了visualGDB插件,远程访问的),需要对visualGDB做一些配置就可以直接运行了。

4 代码

#include <iostream>
#include <hiredis.h>
#include <string>using namespace std;int main(int argc, char *argv[])
{redisContext *c;redisReply *reply;//连接到redisc = redisConnect("127.0.0.1", 6379);if (c->err != 0){return -1;}//将数据加载到数据库void *ptr = redisCommand(c, "HMSET hmset01 usename xiaoTang age 25 xinBie man %s %s", "password", "123456");reply = (redisReply *)ptr;if (reply->type == 5){cout << "zhuangTai=" << reply->str<<"\n";}//每一次都要释放freeReplyObject(reply);//从数据库中取出数据ptr = redisCommand(c, "hgetall hmset01");//ptr = redisCommand(c, "hget hmset01 age");reply = (redisReply *)ptr;//reply->type == 1 返回值是字符串if (reply->type == 1){string strTest = reply->str;int age = stoi(strTest);cout << age;}//reply->type == 2 返回值是数组if (reply->type == 2){for (int i = 0; i < reply->elements; i += 2){string strTest = "key=";strTest.append(reply->element[i]->str);strTest.append(" value=");strTest += reply->element[i + 1]->str;strTest.append("\n");cout << strTest;}}//每一次都要释放freeReplyObject(reply);redisFree(c);return 0;
}

5 其它

5.1 redis中的两个角色

# 服务器 - 启动
redis-server    # 默认启动
redis-server confFileName # 根据配置文件的设置启动
# 客户端
redis-cli   # 默认连接本地, 绑定了6379默认端口的服务器
redis-cli -p 端口号
redis-cli -h IP地址 -p 端口 # 连接远程主机的指定端口的redis
# 通过客户端关闭服务器
shutdown
# 客户端的测试命令
ping [MSG]

5.2 Hash命令

key ->string
value -> hash ([key:value], [key:value], [key:value], ...)
# 添加数据
HSET key field value
# 取数据
HGET key field
# 批量插入键值对
HMSET key field value [field value ...]
# 批量取数据
HMGET key field [field ...]
# 删除键值对
HDEL key field [field ...]

C++通过hiredis连接到redis相关推荐

  1. java程序无法连接redis_无法使用jedis连接到redis

    Redis版本:3.2.0 Jedis版本:2.8.1 下面是我连接到redis的java代码: public class TestRedis { public static void main(St ...

  2. hiredis(一个轻量级redis的c客户端)

    1.简单介绍 hiredis是一个轻量级的访问redis数据库的c客户端. 它是轻量级的不仅仅是因为它仅仅提供对协议的最小支持,而且它使用了一个高级别的极度类似于printf的api使它的级别远高于其 ...

  3. Unable to connect to Redis无法连接到Redis

    文章目录 项目场景: 问题描述: 原因分析: 解决方案: 扩展知识: 项目场景: 提示:这里简述项目相关背景: 在某个项目中的提交按钮不好用 org.springframework.data.redi ...

  4. redis 连接数据库_如何连接到Redis数据库

    redis 连接数据库 介绍 (Introduction) Redis is an open-source, in-memory key-value data store. Whether you'v ...

  5. linux c 封装redis,封装hiredis——C++与redis对接(一)(string的SET与GET操作)

    redis,总想着像Mysql一样,在C/C++中进行对接.于是查询了一些资料,最后找到了hiredis.然而直接用它的话,难免有点不方便.于是,对其进行封装. hiredis直接去git上克隆,地址 ...

  6. c++使用hiredis库操作redis讲解

           做服务端开发基本都会用到redis,java调用redis就简单了,教程很多,库也都是现成的,多数会选择jedis库吧,但是c++调用redis就麻烦一点,基本都要自己编译才行.虽然支持 ...

  7. 其他机无法连接到redis

    yum方式安装的redis配置文件通常在/etc/redis.conf中,或者win的redis安装目录,打开配置文件找到 注释掉 保护模式:no redis配置密码  1.通过配置文件进行配置 1 ...

  8. redis c客户端 hiredis

    1.简单介绍 hiredis是一个轻量级的访问redis数据库的c客户端. 它是轻量级的不仅仅是因为它仅仅提供对协议的最小支持,而且它使用了一个高级别的极度类似于printf的api使它的级别远高于其 ...

  9. java web如何使用aws,amazon-web-services - 使用java Jedis连接到aws elasticache redis

    目前,我正在使用jedis连接到本地redis服务器,使用:pool = new JedisPool("redis://localhost:6379/10"); 然后我想用Elas ...

最新文章

  1. 【Linux】一步一步学Linux——wget命令(192)
  2. python 决策树 字符型_Python判断字符串是否xx开始或结尾的示例
  3. python中cmd全称_【转】Python中执行cmd的三种方式
  4. vs.net 2005中引用webservice的简单方法
  5. WPF开发为按钮提供添加,删除和重新排列ListBox内容的功能
  6. PHP substr_replace() 函数
  7. 开课吧里的python学习是真的吗-Python是个什么鬼?为何学英语的都在关注...
  8. python下载网页内容_使用selenium下载整个html页面内容
  9. c语言怎么编程打开文件,怎么用c语言打开文件
  10. 10个 截屏工具 FastStone Capture9.3注册码
  11. linux下挂载移动硬盘(ntfs格式),Linux下挂载移动硬盘(NTFS格式)
  12. Hbase的数据切分
  13. JAVA整合Milvus矢量数据库及数据
  14. 九、cadence ic 5141 ——反相器版图绘制
  15. Qt QString().sprintf(“%x“)解决打印无符号十六位数
  16. word自动编号变成黑块儿的原因及解决方案
  17. git 重新追踪索引_索引追踪差距
  18. torch把存放tensor的整个list都转为tensor ValueError}only one element tensors can be converted to Python scal
  19. 51单片机 Proteus仿真 电烙铁温度保护系统 DS18B20 温度报警系统
  20. 2016c语言模拟试卷A,2016C语言模拟试卷(程序填空).doc

热门文章

  1. 对应 网口_威纶通网口屏和西门子1200/1500绝对地址实现通讯
  2. java中class_Java中Class对象详解
  3. 20211020 段院士全驱系统
  4. Java提高班(六)反射和动态代理(JDK Proxy和Cglib)
  5. BZOJ 1800 [Ahoi2009]fly 飞行棋
  6. vue.js源码学习分享(一)
  7. view.ondraw
  8. Python 3.x 格式化输出字符串 % format 笔记
  9. python 抓取“煎蛋妹子图”并分页存在本地(普通版和多线程版)
  10. leecode第一百五十五题(最小栈)