我有一项服务可以实时更新 redis(快速内存数据存储)中的一组数据。 我还有一个连接到此 redis 实例的 rails 应用程序。任务是将设置的内容显示给所有客户端。请注意,根据某些客户的设置,集合中的某些元素不应发送给他们。
我不想在每次更新时都发送整套内容。应该可以只发送差异,我正在选择使用哪种方法。
rails -> 客户端 连接的实现:
服务 -> redis 设置 -> rails:
除此之外,我还必须实现更改/删除案例。 看起来这种方法太复杂和低级了。事物很容易失去同步,并且它们会在内存中重复多次。
附加信息:客户不会太多,可能有一千个。该集合将每秒更新一次,有时多,有时少。
让客户端与 Redis 中的状态保持同步的最佳方法是什么? react 使用是否合理?这种“差异”模式是否有一些原生的 React 实现?
最佳答案
我有一个同时使用 React 和 ActionCables 的应用程序。
两者配合得很好。认识到 ActionCables 的局限性很重要(它的用户限制基准低于其他类似工具),但如果您不希望有成千上万的用户同时使用它,它也能正常工作。
无论您是否使用 React,我认为 Flux 模式对管理套接字连接的状态大有帮助。 Vanilla Flux 和 Redux 都是很好的伙伴,它们在监听服务器的变化并将信息传播到应用程序的相关区域方面做得非常出色。它们都恰好最适合与 React 一起使用,但实际上您可以将它们与任何前端框架一起使用。
关于ruby-on-rails - 客户端服务架构 : keep client in sync with in-memory data sctructure,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39557315/