首页 > 数据库 >redis有序集合中是否存在某个成员

redis有序集合中是否存在某个成员

时间:2022-09-28 18:02:56浏览次数:84  
标签:int redis ret argv 有序 集合 reply include


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中有序集合存在的成员情况:

redis有序集合中是否存在某个成员_redis

程序编译和运行结果:

redis有序集合中是否存在某个成员_成员_02


标签:int,redis,ret,argv,有序,集合,reply,include
From: https://blog.51cto.com/u_3002289/5720694

相关文章

  • leetcode977-有序数组的平方
    977.有序数组的平方原本直接暴力的做法没有利用到原数组是有序这个条件。这里直接把左边的绝对值大于右边的直接放到最后面,这样就减少很多不必要的操作。classSoluti......
  • 利用redis实现倒计时任务
    示例如下:importredisimporttimedefevent_handler(msg):'''监听到任何key过期后,得到的消息如下msg={'type':'pmessage',#返回值类型'pattern':'__k......
  • Memcached vs Redis, 挑选哪一个?
    MemcachedvsRedis,挑选哪一个?标签:MencachedRedisMemchached还是Redis?该用哪一个?当我们讨论改进性能的时候,这是每次技术讨论中最常见的一个问题。每当性能需要改善时......
  • 使用Spring boot基于Redis快速搭建分布式Session缓存方案
    使用Springboot基于Redis快速搭建分布式Session缓存方案大型web应用中,session的管理非常重要,这是单机存储满足不了的.通常有以下几种方法:将session持久化到数据库中.但......
  • docker 安装 redis
    1、启动镜像dockerrun--restart=always--log-optmax-size=100m--log-optmax-file=2-p6379:6379--namemyredis-v/opt/myredis/redis.conf:/etc/redis/redis.co......
  • python list去除重复项 set() 集合操作
    list去重:_list1=[1,2,3,4,5,6,5,4,7,3,2]_res=list(set(_list1))print(_res)结果:[1,2,3,4,5,6,7]交集& : x&y,返回一个新的集合,包括同时在集合x和y中的共同元素。......
  • Redis笔记
    Redis建议参考目录使用!!!Redis(RemoteDictionaryServer),即远程字典服务redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并在此基础上实现了主从......
  • 【Redis】切片集群
    如何保存更多的数据为了保存更多的数据,通常使用大内存云主机和切片集群两种方法。实际上,这两种方法分别对应着redis应对数据量增多的两种方法:纵向扩展和横向扩展。纵向......
  • REDIS面试题(7)
    20 Redis的大key问题  21如何解决Redis使用key命名阻塞的问题? 如果想要获取整个实例的所有key,建议使用SCAN命令代替。客户端通过执行SCAN$cursorCOUNT$count......
  • Redis五种数据类型底层实现
    Redis数据库结构Redis是支持多key-value数据库(表)的,并用RedisDb来表示一个key-value数据库(表).redisServer中有一个redisDb*db成员变量,RedisServer在初始化......