1. 初识Redis

     

    Redis是一款开源的、高性能的键-值存储(key-value store)。它常被称作是一款数据结构服务器(data structure server)。

    Redis的键值可以包括字符串(strings)类型,同时它还包括哈希(hashes)、列表(lists)、集合(sets)和 有序集合(sorted sets)等数据类型。 对于这些数据类型,你可以执行原子操作。例如:对字符串进行附加操作(append);递增哈希中的值;向列表中增加元素;计算集合的交集、并集与差集等。

    为了获得优异的性能,Redis采用了内存中(in-memory)数据集(dataset)的方式。同时,Redis支持数据的持久化,你可以每隔一段时间将数据集转存到磁盘上(snapshot),或者在日志尾部追加每一条操作命令(append only file,aof)。

    Redis同样支持主从复制(master-slave replication),并且具有非常快速的非阻塞首次同步( non-blocking first synchronization)、网络断开自动重连等功能。同时Redis还具有其它一些特性,其中包括简单的事物支持、发布订阅 ( pub/sub)、管道(pipeline)和虚拟内存(vm)等 。
    Redis具有丰富的客户端,支持现阶段流行的大多数编程语言。

    《摘自:https://www.cnblogs.com/yuhangwang/p/5817930.html》

 

    ​2.安装redis

    ​    ​这里只介绍ubuntu下安装redis

        sudo apt-get install update

        sudo apt-get install redis

 

    3.启动redis

        //启动服务端

        sudo  redis-server

        //启动客户端

        sudo redis-cli

        我们可以按照平时敲linux命令一样,示范一              个例子:

        

这个就是设置了redis的值为“”hello   redis“”, 再获取,命令比较简单。

 

4.linux下安装hiredis库

wget http://labfile.oss.aliyuncs.com/courses/664/hiredis-master.zip 

unzip hiredis-master.zipcd hiredis-master   

make   

sudo make install 

sudo ldconfig /usr/local/lib  #ldconfig是一个动态链接库管理命令 将生成的库复制到 /usr/local/lib 目录下

5.hiredis接口

我们经常使用的函数先列一下:

redisContext *redisConnect(const char *ip, int port);         /*连接redis*/

void *redisCommand(redisContext *c, const char *format, ...); /*redis数据库操作 如SET GET AUTH等*/

void freeReplyObject(void *reply);                            /*释放redisCommand返回得到的结果结构体*

void redisFree(redisContext *c);                              /*释放连接上下文断开连接*/

具体用法我就不一一列举了,搜索一下,有很多详细介绍的。

 

《可以参考这篇文章:https://blog.csdn.net/xumaojun/article/details/51597523》

 

6.redis测试用例(注释详细)

#include<hiredis/hiredis.h>

#include<iostream>

using namespace std;

 

int main()

{

//2秒超时时间

struct timeval timeout = {2,0};

//连接数据库

redisContext* pRedisContex = (redisContext*)redisConnectWithTimeout("127.0.0.1",6379,timeout);

if((NULL == pRedisContex) || (pRedisContex->err))

{

if(pRedisContex)

{

cout<<"connect error:"<<pRedisContex->errstr<<endl;

}

else

{

cout<<"connect error"<<endl;

}

return -1;

}

//发送命令 info,获取redis相关信息

redisReply *pRedisReply = (redisReply*)redisCommand(pRedisContex,"INFO");

//打印获取的信息

cout<<pRedisReply->str<<endl;

//释放资源

freeReplyObject(pRedisReply);

return 0;

}

 

 

 

 

 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐