Redis经常更改市场信息

时间:2014-01-06 10:28:27

标签: .net wcf redis

我们软件环境中的当前方法是在分布式SOA基础架构中拥有多个WCF服务。有多个服务为前端网站提供股票,债券,货币,共同基金等股票交易所的信息。

webservices查询数据库,我们直接从.net框架获得ThreadCache,它将信息缓存3-5分钟。如果缓存过期,则最终用户将调用将从数据库中检索新信息的方法。因此,除了调用带有过期数据的Web服务的网站之外,该网站非常快......该用户的响应时间非常慢......可能大约10-20秒:/

我希望每隔5分钟将此市场信息提供给在Windows服务器上运行的Redis服务。 WCF服务将从REDIS而不是数据库获取信息。

我的一个大问题是如何使用在同一台机器上运行的新信息更新REDIS服务的数据馈送器的最佳方法?

  • 每5分钟运行一次Windows服务
  • 守护程序每5分钟从工作负载计划程序运行
  • ..或者我可以在Redis中实现一些方法,他自己(REDIS)会检查是否为 数据已过期,然后调用一些更新REDIS数据存储的方法。

给你意见! :)

1 个答案:

答案 0 :(得分:1)

以下是我的意见

  

webservices查询数据库,我们直接使用ThreadCache   来自.net框架,它将信息缓存3-5分钟。如果   缓存已过期,它将是调用该方法的最终用户   这将从数据库中检索新信息。所以   除了调用webservice的网站之外,网站速度非常快   使用过期的数据......用户的响应时间会很慢......   可能大约10-20秒:/

为什么需要服务层?如果它只用于缓存数据,我强烈建议您使用AppFabric直接查询分布式缓存或简单地查询Redis。在您的情况下,另一层似乎没用,特别是因为代码似乎与您的网站严重耦合。

  
      
  • 每5分钟运行一次Windows服务
  •   
  • 守护进程每5分钟运行一次   工作负载计划程序的分钟数。
  •   
  • 或许我可以实施一些   Redis中的方法和他自己(REDIS)会检查数据是否有   过期然后调用一些更新REDIS数据的方法   存储
  •   

Windows服务或守护程序,它完全相同,这是设置后台处理的推荐方法。我熟悉topshelf,我发现它非常强大。 即使Redis现在支持Keyspace Notifications,也不可能直接调用.net中的内容。

您的数据会在5分钟后过期吗?好的,但是在后台每分钟运行一次任务来预加载/预先缓存数据。对于最终用户来说总是很快,因为你永远不必重新加载它。

最后Redis的另一个重要特征是PubSub。当Redis中的某些内容发生变化时,很容易通知所有订阅者。只需几行,它允许您在所有网站上实现本地缓存失效,并避免不同步的节点。

  

我想将此市场信息提供给运行的Redis服务   Windows服务器每5分钟一次。获得WCF服务   来自REDIS而非数据库的信息。

目前,Windows上的Redis端口不是生产质量,但可以在Windows(服务器)环境中用于开发目的。我使用它几个月后发现它非常稳定但是建议在Linux环境中运行Redis。