Redis 是一种内存数据存储解决方案,常用于缓存和消息队列。由于其出色的性能和灵活性,它已成为许多应用程序中不可或缺的组件。但是,许多开发人员可能会想知道:是否可以在 JavaScript 运行的浏览器中直接连接到 Redis 服务器?本文将探讨这个问题,并提供一些指导意义。
短回答
短而简单的回答是:不能。浏览器上运行的 JavaScript 只能与 HTTP 或 WebSocket 等传输协议通信,而 Redis 使用自己的二进制协议进行通信。因此,必须使用中间层来实现浏览器与 Redis 之间的通信。
中介层架构
要在浏览器中使用 Redis,需要一个中介层来充当浏览器和 Redis 之间的桥梁。这个中介层可以是一个 Node.js 服务器或任何其他支持 Redis 协议的服务器。该服务器将充当代理,接收来自浏览器的 Redis 命令并将其转发到 Redis 服务器。类似地,它将从 Redis 服务器接收响应并将其返回给浏览器。
以下是一些流行的 Node.js 库,可以用作中介层:
实现示例
下面是一个使用 Node.js 和 node_redis
库的简单示例。该方案使用中间层服务器将来自浏览器的请求转发到 Redis 服务器。
安装依赖项
首先,需要安装 Node.js 和 node_redis
库。您可以使用以下命令完成此操作:
# Install Node.js (version 12 or later) $ curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash - $ sudo apt-get install -y nodejs # Install redis and node_redis $ sudo apt-get install -y redis-server $ npm install redis
创建服务器
接下来,我们将创建一个简单的 Node.js 服务器,它会监听来自浏览器的连接,并将其转发到 Redis 服务器。
-- -------------------- ---- ------- ----- ----- - ----------------- ----- ---- - ---------------- -- ------ - ----- ------ ----- ----------- - -------------------- ----- --------------- -- ------- ---- ---- ----- ------ -------- -- -- ------- ----- ----- -- ------- ---- ---- ----- ------ ---- ------ --- -- ------ -- ---- ------ ----- ------ - ----------------------- ---- -- - -- --- --- ----- ------- ---- --- ------- ----- ------- - ------------------ -- ---- --- ----- ------- -- --- ----- ------ --------------------------------- ----- ------- -- - -- ----- - ------------------- --------------------- - ---- - ------------------ - --------------- ------------ --- ---------------- - --- --- -- ----- --- ------ ------------------- -- -- - ------------------- -- ------- -- ---- ------- ---
请注意,这个服务器非常简单,并且并没有对来自浏览器的请求进行任何安全检查。在实际应用中,您需要采取适当的安全措施来确保您的 Redis 服务器不会受到攻击。
连接 Redis
现在我们已经创建了一个中介层服务器,可以连接到 Redis 服务器。如果您使用 Docker 运行Redis服务器,则可以运行以下命令:
$ docker run --name some-redis -d redis
与 Redis 进行通信
最后,我们
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/30717