我们计划在API端使用Redis作为缓存。我根据要求有特定的场景
- 保存用户完成的 session
我们已经根据 ClientID 维护了一个 UserId 列表—— 表示该用户可以访问该客户端
** session 对象具有以下属性/属性
- session 编号
- session 类型
- session 日期
- 客户编号
- session 状态**
由于我们在从 SQL DB 获取 session 列表时遇到性能问题,我们计划使用 Redis 对其进行缓存。我们将根据以下属性/属性从缓存中过滤 session
1> session 类型(电话、个人访问) 2> session 状态(打开、关闭)...等
到目前为止,我们已经完成了以下方法
为每个过滤器维护一个键
1> session 类型
a>session :通话
, b>session :个人访问
2> session 状态 a>
session 状态:打开
b>session 状态:关闭
并使用key的交互为
过滤数据
查找用户通过个人访问完成的所有公开 session
或者考虑到以下痛点是否有更好的方法
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中,你可以使用“hack”。您可以为不同的过滤器维护 session 的 HashMap 。
即一种用于 Meeting:Call,一种用于 Meeting:PersonalVisit,一种用于 MeetingStatus:Open,一种用于 MeetingStatus:Closed 等
哈希示例
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
如果你的过滤器很少,你可以使用上面的方法,总之我是过滤后存储 session 。
关于caching - Redis缓存结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44241529/