数据存储在redis上有多种方式:
1.key形式
2.hash形式
3.list形式
4 string形式
5 set 形式
6 sortedSet(有序集合)
根据提供的接口,用class包装所以存储类型的接口
//oper_redis.h
#ifndef __OPER_REDIS_H
#define __OPER_REDIS_H
#include<xxxredis.h>
class OperRedis
{
public:
OperRedis();
int redis_conn(char *host,int port);
int redis_comm_get(char *cmd,char value);
void redis_comm_set(char *cmd);
void redis_free();
void redis_close();
};
#endif
//oper_redis.cpp
#include<stdlib.h>
#include<string.h>
#include<xxxredis.h>
OperRedis::OperRedis()
{
conn=NULL;
reply=NULL;
}
int OperRedis::redis_conn(char *host,int port)
{
conn=redisConnect(host,port);
if(conn->err)
{
printf("connection err:%s",conn->errstr);
return 0;
}
return 1;
}
int OperRedis::redis_comm_get(char *cmd,char *value)
{
reply=(redisReply*)redisCommand(conn,cmd);
if(1==reply->type)
strncpy(value,reply->str,reply->len);
return reply->type;
}
void OperRedis::redis_comm_set(char *cmd)
{
reply=(redisReply *)redisCommand(conn,comm);
}
void OperRedi::redis_free()
{
freeReplyObject(reply);
}
void OperRedis::redis_close()
{
redisFree(conn);
}
//test_main.cpp
int main()
{
OperRedis oprd;
int ret=oprd.redis_conn("10.1.1.2",6379);
if(0==ret)
{
printf("connect error!\n");
retrn 0;
}
printf("connect success!\n");
char setcmd[]="set test 123";
oprd.redis_comm_set(setcmd);
oprd.redis_free();
char getcmd[]="get test";
char value[64]={'\0'};
ret=oprd.redi_comm_get(getcmd);
if(1==ret)
printf("get value success");
else
printf("no this key");
oprd.redis_free();
oper.redis_close();
return 0;
}
setkey:可以是:HSET website google www.g.cn
通过组合setkey和getkey存储各类方式的数据