面试题答案
一键面试常见应用场景
- 用户权限判断:在系统中,可将具有特定权限的用户ID存储在一个Redis集合中。当某个用户尝试执行特定操作时,通过
SISMEMBER
命令判断该用户ID是否在对应权限集合内,以确定其是否具有该操作权限。例如,在一个文件管理系统中,将拥有文件删除权限的用户ID存储在delete_permission_users
集合中,每次用户尝试删除文件时,判断其ID是否在该集合内。 - 标签系统:对于一个内容平台,可将具有特定标签的文章ID存储在相应标签的集合中。当需要判断某篇文章是否具有某个特定标签时,使用
SISMEMBER
命令。比如在一个博客平台,将带有“技术”标签的文章ID存储在tech_tags
集合中,判断某篇文章是否属于技术类文章。 - 好友关系判断:在社交应用中,将用户的好友ID存储在该用户对应的集合里。要判断两个用户是否为好友关系时,在其中一个用户的好友集合中使用
SISMEMBER
判断另一个用户ID是否存在。
示例
假设我们有一个电商系统,需要判断某个用户是否在参与促销活动的用户集合中。
- 添加参与促销活动的用户到集合
import redis r = redis.Redis(host='localhost', port=6379, db = 0) # 添加用户1001到促销活动用户集合 r.sadd('promotion_users', 1001)
- 判断用户是否在促销活动集合中
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
命令,判断用户是否在促销活动用户集合中,以决定该用户是否能享受促销优惠等业务逻辑。