Redis缓存结构用例

时间:2017-06-20 13:17:35

标签: redis

问题陈述:我们的一个模块(故障单模块 - 存储过程)需要4-5秒才能从数据库返回数据。此存储过程支持7 -8过滤器+它已连接4-5个表以获取存储在票证表中的ID的文本,例如(客户端名称,票证状态,票证类型...),这阻碍了SP的性能

当前技术堆栈:ASP.Net 4.0 Web API,MS SQL 2008

我们计划将Redis作为缓存服务器和Node js,以提高性能和可扩展性。

用例:我们有服务票据模块,它具有以下属性

  1. TicketId
  2. 客户端Id
  3. TicketDate
  4. 票务状态
  5. 门票类型
  6. 此模块的每个用户都可以访问修复客户端,即

    • User1可以访问客户端1,2,3,4 ......
    • 的门票
    • User2可以访问客户1,2,5,7 ......的门票......

    所以基本上当User1访问Ticket模块时,他应该能够在TicketId,Client,Ticket Date(from和To),Ticket Status(Open,Hold,In Process ...)和Ticket Type(Request)上过滤服务票据。 ,投诉,服务......)+由于User1只能访问客户端1,2,3,4 ......,缓存应该只提供他有权访问的客户的票据列表。

    如果你们能分享你们的观点我们应该如何构建Redis,即我们应该为上述每个项目使用什么,例如hashset,set,sorted set ... +我们应该如何根据访问权限过滤门票客户端resp用户有。

1 个答案:

答案 0 :(得分:0)

Redis是键/值存储。我会使用像以下结构的hashset: 关键:ticketId 子键:clientId,ticketDate,ticketStatus,ticketType

搜索,排序等 - 从应用程序或/和LUA中以编程方式处理。