Redis从入门到使用
初识RedisRedis是一款开源的、高性能的键-值存储(key-value store)。它常被称作是一款数据结构服务器(data structure server)。Redis的键值可以包括字符串(strings)类型,同时它还包括哈希(hashes)、列表(lists)、集合(sets)和 有序集合(sorted sets)等数据类型。 对于这些数据类型,你可以执行原...
-
初识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;
}
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)