背景:
餐桌学校:
3 个字段:
sid(学校编号)
s_name(学校名称)
s_type(学校类型)
表用户:
2 个字段:
user_id(用户 ID)
姓名(用户名)
表school_user_relationship:
3 个字段:
摆脱(关系ID)
sid(学校编号)
user_id(用户id)
解释:
- sid和user_id都存在于user表中,用flag来区分学校和普通用户。 sid和user_id来自同一个全局用户系统,由分布式ID算法生成,不被MySQL自增
- 学校表是学校信息的扩展表。
- 表school_user_关系存在唯一约束联合(sid,user_id)
- 关系表中的每条记录表示sid学校有一个user_id用户
- 每个sid学校的最大用户数为100000
- 学校数量高度不确定
问题:
如何使用Redis优化以下两个需求?
- 给定一个代表学校的sid和一个代表学校或学生的user_id,确定user_id属于这所学校(sid)
- 给定一个代表一个(学校id或用户id)集合的用户,它判断集合中的所有用户是否属于同一所学校
数据结构:
哈希?放?位集?
不使用任何优化时,查询时间有点长。因此,优化很有可能毕业。但我还没有任何计划。