我们计划在API端使用Redis作为缓存。我根据要求有特定的场景
- 保存用户完成的会议
-
我们已经在维护一个针对 ClientID 的用户 ID 列表 -- 表示该用户有权访问该客户端
**会议对象具有以下属性/属性
- 会议标识
- 会议类型
- 会议日期
- 客户端标识
- 会议状态**
由于我们在从 SQL DB 获取会议列表时面临性能问题,我们计划使用 Redis 对其进行缓存。 我们将根据以下属性/属性从缓存中过滤会议
1> 会议类型(通话、亲自拜访) 2> 会议状态(开放、已关闭)...等
截至目前,我们已经确定了以下方法
为每个筛选器维护一个密钥
1> 会议类型
a>Meeting:Call
, 乙>Meeting:PersonalVisit
2> 会议状态 答>
MeetingStatus:Open
乙>MeetingStatus:Closed
并使用键的交互来筛选数据
查找用户通过个人访问完成的所有公开会议
或者考虑到以下痛点,是否有更好的方法
1. How do I filter the meeting of only clients of which he/she has
access of.
2. How do I achieve dynamic order by on MeetingId/MeetingStatus/....
etc
Can you guide me where should I be heading for the above implementation
+ 如果您能分享一些好的 redis 资源/链接,将不胜感激
Redis 不像对关系数据库那样用于查询。但正如我所理解的那样。您必须优化/调整数据库设置。如果问题仍然存在,那么去一些NOSQL数据库。 在 redis 中,您可以使用"黑客"。您可以为不同的过滤器维护会议哈希图。
即一个用于会议:呼叫,一个用于会议:个人访问,一个用于会议状态:打开,一个用于会议状态:已关闭等
哈希
示例
meeting_call [ 1:{meeting_obj1},4:{meeting_obj4} ] // redis hash for
Meeting:Call filter
meetingstatus_open [ 5:{meeting_obj5},4:{meeting_obj4} ] // redis hash
MeetingStatus:Open
如果您的过滤器非常少,您可以以上方法,简而言之,我在过滤后存储会议。