C++通过hiredis连接到redis
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相关推荐
- java程序无法连接redis_无法使用jedis连接到redis
Redis版本:3.2.0 Jedis版本:2.8.1 下面是我连接到redis的java代码: public class TestRedis { public static void main(St ...
- hiredis(一个轻量级redis的c客户端)
1.简单介绍 hiredis是一个轻量级的访问redis数据库的c客户端. 它是轻量级的不仅仅是因为它仅仅提供对协议的最小支持,而且它使用了一个高级别的极度类似于printf的api使它的级别远高于其 ...
- Unable to connect to Redis无法连接到Redis
文章目录 项目场景: 问题描述: 原因分析: 解决方案: 扩展知识: 项目场景: 提示:这里简述项目相关背景: 在某个项目中的提交按钮不好用 org.springframework.data.redi ...
- redis 连接数据库_如何连接到Redis数据库
redis 连接数据库 介绍 (Introduction) Redis is an open-source, in-memory key-value data store. Whether you'v ...
- linux c 封装redis,封装hiredis——C++与redis对接(一)(string的SET与GET操作)
redis,总想着像Mysql一样,在C/C++中进行对接.于是查询了一些资料,最后找到了hiredis.然而直接用它的话,难免有点不方便.于是,对其进行封装. hiredis直接去git上克隆,地址 ...
- c++使用hiredis库操作redis讲解
做服务端开发基本都会用到redis,java调用redis就简单了,教程很多,库也都是现成的,多数会选择jedis库吧,但是c++调用redis就麻烦一点,基本都要自己编译才行.虽然支持 ...
- 其他机无法连接到redis
yum方式安装的redis配置文件通常在/etc/redis.conf中,或者win的redis安装目录,打开配置文件找到 注释掉 保护模式:no redis配置密码 1.通过配置文件进行配置 1 ...
- redis c客户端 hiredis
1.简单介绍 hiredis是一个轻量级的访问redis数据库的c客户端. 它是轻量级的不仅仅是因为它仅仅提供对协议的最小支持,而且它使用了一个高级别的极度类似于printf的api使它的级别远高于其 ...
- java web如何使用aws,amazon-web-services - 使用java Jedis连接到aws elasticache redis
目前,我正在使用jedis连接到本地redis服务器,使用:pool = new JedisPool("redis://localhost:6379/10"); 然后我想用Elas ...
最新文章
- 【Linux】一步一步学Linux——wget命令(192)
- python 决策树 字符型_Python判断字符串是否xx开始或结尾的示例
- python中cmd全称_【转】Python中执行cmd的三种方式
- vs.net 2005中引用webservice的简单方法
- WPF开发为按钮提供添加,删除和重新排列ListBox内容的功能
- PHP substr_replace() 函数
- 开课吧里的python学习是真的吗-Python是个什么鬼?为何学英语的都在关注...
- python下载网页内容_使用selenium下载整个html页面内容
- c语言怎么编程打开文件,怎么用c语言打开文件
- 10个 截屏工具 FastStone Capture9.3注册码
- linux下挂载移动硬盘(ntfs格式),Linux下挂载移动硬盘(NTFS格式)
- Hbase的数据切分
- JAVA整合Milvus矢量数据库及数据
- 九、cadence ic 5141 ——反相器版图绘制
- Qt QString().sprintf(“%x“)解决打印无符号十六位数
- word自动编号变成黑块儿的原因及解决方案
- git 重新追踪索引_索引追踪差距
- torch把存放tensor的整个list都转为tensor ValueError}only one element tensors can be converted to Python scal
- 51单片机 Proteus仿真 电烙铁温度保护系统 DS18B20 温度报警系统
- 2016c语言模拟试卷A,2016C语言模拟试卷(程序填空).doc
热门文章
- 对应 网口_威纶通网口屏和西门子1200/1500绝对地址实现通讯
- java中class_Java中Class对象详解
- 20211020 段院士全驱系统
- Java提高班(六)反射和动态代理(JDK Proxy和Cglib)
- BZOJ 1800 [Ahoi2009]fly 飞行棋
- vue.js源码学习分享(一)
- view.ondraw
- Python 3.x 格式化输出字符串 % format 笔记
- python 抓取“煎蛋妹子图”并分页存在本地(普通版和多线程版)
- leecode第一百五十五题(最小栈)