问题陈述:我们的一个模块(故障单模块 - 存储过程)需要4-5秒才能从数据库返回数据。此存储过程支持7 -8过滤器+它已连接4-5个表以获取存储在票证表中的ID的文本,例如(客户端名称,票证状态,票证类型...),这阻碍了SP的性能
当前技术堆栈:ASP.Net 4.0 Web API,MS SQL 2008
我们计划将Redis作为缓存服务器和Node js,以提高性能和可扩展性。
用例:我们有服务票据模块,它具有以下属性
此模块的每个用户都可以访问修复客户端,即
所以基本上当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用户有。
答案 0 :(得分:0)
Redis是键/值存储。我会使用像以下结构的hashset: 关键:ticketId 子键:clientId,ticketDate,ticketStatus,ticketType
搜索,排序等 - 从应用程序或/和LUA中以编程方式处理。