Linux下编写C++服务器(redis连接)

安装redis

redis的安装很简单,由于是轻便型的数据库,下载很快,redis安装教程
然后是C++连接需要安装客户端驱动hiredis,linux下Redis以及c++操作

创建项目

  1. 这里把hiredis的头文件/usr/local/include/hiredis/复制到windows的共享文件中,如图在这里插入图片描述
  2. 创建名为redisTset的makefile项目,结构如下:
    在这里插入图片描述
  3. 右键项目,选择属性,在GeneralRemote Build Root Directory中写入Linux上的项目目录,
    在这里插入图片描述
    C++->Include Search Path添加E:\LinuxShare\include;E:\LinuxShare\include\c++\4.8.2;E:\LinuxShare\redis
    在这里插入图片描述
    Remote Build四项中分别写入
cd $(RemoteRootDir)/$(ProjectName); make build
cd $(RemoteRootDir)/$(ProjectName); make clean build
cd $(RemoteRootDir)/$(ProjectName); make clean
$(RemoteRootDir)/$(ProjectName)/redisTest

如图:
在这里插入图片描述

  1. 编写代码
    main.cpp
#pragma once
#pragma execution_character_set("utf-8")
#include <iostream>
#include "hiredis/hiredis.h"
using namespace std;
int main() {
	//设置IP,端口
	redisContext *c = redisConnect("127.0.0.1", 6379);
	if (c->err) {
		redisFree(c);
		cout << "connect to redis fail" << endl;
		return 1;
	}
	cout << "connect to redis success" << endl;
	//登录(没有设置密码就不用)
	redisReply *r = (redisReply*)redisCommand(c, "auth 123456");
	cout << r->str << endl;
	freeReplyObject(r);
	//删除名为runoob的key
	r = (redisReply*)redisCommand(c, "DEL runoob");
	if (r->type != REDIS_REPLY_INTEGER && r->str != 0x00)
	{
		cout << r->str << endl;
	}
	freeReplyObject(r);
	//新增有序集合runoob
	r = (redisReply*)redisCommand(c, "zadd runoob 0 redis");
	if (r->type != REDIS_REPLY_INTEGER || r->integer != 1)
	{
		cout << "执行失败" << endl;
	}
	freeReplyObject(r);
	r = (redisReply*)redisCommand(c, "zadd runoob 2 mongodb");
	if (r->type != REDIS_REPLY_INTEGER || r->integer != 1)
	{
		cout << "执行失败" << endl;
	}
	freeReplyObject(r);
	r = (redisReply*)redisCommand(c, "zadd runoob 1 rabitmq");
	if (r->type != REDIS_REPLY_INTEGER || r->integer != 1)
	{
		cout << "执行失败" << endl;
	}
	freeReplyObject(r);

	//查找
	r = (redisReply*)redisCommand(c, "ZRANGEBYSCORE runoob 0 1000");
	for(int i=0;i<r->elements;i++)
		cout << r->element[i]->str << endl;
	freeReplyObject(r);
	redisFree(c);
	return 0;
}

makefile

INCLUDEPATH=/usr/include/mysql
LIBPATH=/usr/lib64/mysql
CC1=g++

build:
	$(CC1) -gdwarf-2 -o redisTest main.cpp -lhiredis

clean:
	rm *.o dbTest

运行结果

在这里插入图片描述

发布了14 篇原创文章 · 获赞 6 · 访问量 3117

猜你喜欢

转载自blog.csdn.net/qq_39554698/article/details/99868128