redis命令使用参考网页:http://redis.cn/commands.html
有序集合中,redis没有命令直接判断有序集合中是否存在某个成员,自行通过代码实现,示例代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <hiredis.h>
/* -------------------------------------------*/
/**
* @brief 判断某个成员是否存在
*
* @param c 已建立的链接
* @param key zset表名
* @param member zset成员名
*
* @returns
/* -------------------------------------------*/
int zismember(redisContext *c, char *key, char *member)
{
int ret = 0;
redisReply *reply;
reply = redisCommand(c,"zrange %s 0 -1", key); //执行命令
if(reply->type != REDIS_REPLY_ARRAY) //返回内容状态类型为数组
{
goto END;
}
int i;
size_t n = reply->elements; //数组元素个数
for(i = 0; i < n; ++i)
{
//printf("%d) %s\n", i, reply->element[i]->str);
if(strcmp(member, reply->element[i]->str) == 0)
{
ret = 1;
goto END;
}
}
END:
freeReplyObject(reply);//释放资源
return ret;
}
int main(int argc, char *argv[])
{
redisContext *c;
c = redisConnect("127.0.0.1", 6379); //连接redis服务器
int ret = zismember(c, "top", argv[1]); //判断某个成员是否存在, 存在返回1,不存在返回0
if(ret == 1)
{
printf("%s 存在\n", argv[1]);
}
else
{
printf("%s 不存在\n", argv[1]);
}
redisFree(c); //断开和服务器的连接
return 0;
}
redis中有序集合存在的成员情况:
程序编译和运行结果: