MST

星途 面试题库

面试题:Redis SISMEMBER命令在集合成员判断中的常见应用场景有哪些

请阐述Redis的SISMEMBER命令在实际项目开发中,于集合成员判断方面的常见应用场景,并举例说明如何使用该命令解决实际业务问题。
49.7万 热度难度
数据库Redis

知识考点

AI 面试

面试题答案

一键面试

常见应用场景

  1. 用户权限判断:在系统中,可将具有特定权限的用户ID存储在一个Redis集合中。当某个用户尝试执行特定操作时,通过SISMEMBER命令判断该用户ID是否在对应权限集合内,以确定其是否具有该操作权限。例如,在一个文件管理系统中,将拥有文件删除权限的用户ID存储在delete_permission_users集合中,每次用户尝试删除文件时,判断其ID是否在该集合内。
  2. 标签系统:对于一个内容平台,可将具有特定标签的文章ID存储在相应标签的集合中。当需要判断某篇文章是否具有某个特定标签时,使用SISMEMBER命令。比如在一个博客平台,将带有“技术”标签的文章ID存储在tech_tags集合中,判断某篇文章是否属于技术类文章。
  3. 好友关系判断:在社交应用中,将用户的好友ID存储在该用户对应的集合里。要判断两个用户是否为好友关系时,在其中一个用户的好友集合中使用SISMEMBER判断另一个用户ID是否存在。

示例

假设我们有一个电商系统,需要判断某个用户是否在参与促销活动的用户集合中。

  1. 添加参与促销活动的用户到集合
    import redis
    
    r = redis.Redis(host='localhost', port=6379, db = 0)
    # 添加用户1001到促销活动用户集合
    r.sadd('promotion_users', 1001)
    
  2. 判断用户是否在促销活动集合中
    user_id = 1001
    is_member = r.sismember('promotion_users', user_id)
    if is_member:
        print(f"用户{user_id}在促销活动用户集合中")
    else:
        print(f"用户{user_id}不在促销活动用户集合中")
    

上述Python代码通过Redis的SISMEMBER命令,判断用户是否在促销活动用户集合中,以决定该用户是否能享受促销优惠等业务逻辑。