首页 > 应用开发 > C/C++ > 【C/C++】c++多进程与hiredis的浅使用
#include <iostream>
#include <hiredis/hiredis.h>
#include <stdlib.h>
#include <sys/wait.h>
#include <unistd.h>
int main(){
pid_t pid;
pid = fork();
if(pid <0 ){
std::cout<< "fork error!"<<std::endl;
}
//父子进程都执行
redisContext* conn = redisConnect("10.1.175.130", 6379);
if(NULL==conn || conn->err){
if(conn){
std::cout<<"Error:"<<conn->errstr<<std::endl;
redisFree(conn);
} else {
std::cout<<"Error:Can't allocate redis context"<<std::endl;
}
return 0;
}
if(0==pid){
const char* command = "set name yuanzaixin";
redisReply* r = (redisReply*)redisCommand(conn, command);
if(NULL==r){
redisFree(conn);
return 0;
}
std::cout<<"fork child"<<std::endl;
freeReplyObject(r);
}
if(pid >0){
//父进程执行不一样的命令
const char* command = "set name xinzaiyuan";
redisReply* r = (redisReply*)redisCommand(conn, command);
if(NULL==r){
redisFree(conn);
return 0;
}
std::cout<<"fork parent"<<std::endl;
freeReplyObject(r);
}
//父子进程都执行
if (NULL!=conn){
redisFree(conn);
}
}
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30221425/viewspace-2565029/ ,如需转载,请注明出处,否则将追究法律责任。