首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Redis缓存结构

Redis缓存结构
EN

Stack Overflow用户
提问于 2017-05-29 11:34:14
回答 1查看 223关注 0票数 0

我们计划在API结束时使用Redis作为缓存。根据需要,我有特定的场景

  1. 保存用户完成的会议
  2. 我们已经针对ClientID维护了一个UserId列表--它表示用户可以访问该客户端。 **会议对象具有下列属性/属性
代码语言:javascript
复制
1. MeetingId
2. MeetingType
3. MeetingDate
4. ClientId
5. MeetingStatus\*\*

由于我们在从SQL获取会议列表时面临性能问题,因此我们计划使用Redis缓存它。我们将根据以下属性/属性从缓存中筛选会议

1> MeetingType (个人拜访) 2>会议状态(开放,关闭)等

到目前为止,我们已经确定了以下方法

为每个过滤器维护一个键

1> MeetingType

代码语言:javascript
复制
        a> `Meeting:Call`,             b> `Meeting:PersonalVisit`

2>会议状态a>MeetingStatus:Open b>MeetingStatus:Closed

并使用key的交互来过滤数据

查找用户通过个人访问完成的所有公开会议。

还是有更好的方法来考虑下面的痛点

代码语言:javascript
复制
 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共享一些好的资源/链接,将不胜感激。
EN

回答 1

Stack Overflow用户

发布于 2017-05-31 09:51:37

Redis并不像对关系数据库那样用于查询。但正如我所理解的问题。您必须优化/调优数据库设置。如果问题仍然普遍存在,那么就选择一些NOSQL。在redis中,您可以使用"hack“。您可以为不同的过滤器维护会议的hashmap。

一个用于会议:呼叫,一个用于会议:PersonalVisit,一个用于MeetingStatus:Open,一个用于MeetingStatus:Closed等

哈希示例

代码语言:javascript
复制
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

如果您的过滤器非常少,您可以使用上述方法,简而言之,我在过滤之后存储会议。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44241529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档