在 Web 浏览器中实现一个好的 redis 客户端需要啥?

Posted

技术标签:

【中文标题】在 Web 浏览器中实现一个好的 redis 客户端需要啥?【英文标题】:What would it take to implement a good redis-client in the web-browser?在 Web 浏览器中实现一个好的 redis 客户端需要什么? 【发布时间】:2016-01-19 09:12:48 【问题描述】:

这个问题之前在 Can I connect directly to a Redis server from javascript running in a browser? (注意我的评论) 和 Connecting directly to Redis with (client side) javascript? 但我想知道有什么可以完美实时连接的东西。阅读(一个 node-redis 客户端)https://github.com/luin/ioredis 源,我注意到 node 库的net 部分可能包含我们需要在浏览器中重现来执行此操作的那种功能。

猜测也许从 webrtc 函数的片段中破解出来的东西可以做到吗?

潜在的好处与构建大型分布式应用系统基础设施有关——比如社交媒体(来自对上面链接的第一个问题的评论):

我再次问这个问题,但规定我们想要一个“真实的”,就像在浏览器中运行的实时 redis 客户端——而不是 HTTP 任何东西——一样。可以构建一个伟大的实时“基础设施”,仅使用 CDN 服务资产构成客户端 webapp 直接与 Redis 通信。我想删除系统中不必要的 WebSocket 服务器方面。所有的控制逻辑都可以内化到 Lua 中的 redis 集群中。

【问题讨论】:

这并没有解决所提出的技术挑战,但对于某些应用程序来说,避开浏览器作为 Web 客户端的分发点可能是可行的,只使用 node-webkit (NW.js )。因为 NW.js 具有完整的 node.js 访问权限,所以标准节点 redis 客户端没有问题。 【参考方案1】:

要在 web 浏览器中实现直接的 redis-client,您需要更改 Redis 本身,因此它会暴露 WebSocket 接口。这样您将获得允许使用的最简单的协议浏览器。

其他方法将涉及中间层。我认为应该可以通过ws-tcp-relay 代理命令,这非常快。

【讨论】:

以上是关于在 Web 浏览器中实现一个好的 redis 客户端需要啥?的主要内容,如果未能解决你的问题,请参考以下文章

在 Istio 中实现 Redis 集群的数据分片读写分离和流量镜像

在 Istio 中实现 Redis 集群的数据分片读写分离和流量镜像

如何在Flask框架中实现服务器推送?

如何在 dart 中实现适用于移动设备和 Web 的 http 客户端?

为什么要用缓存服务器以及在 Java 中实现一个 redis 缓存服务

如何使用 laravel 5.1+ 在 web 应用程序中实现许可功能