提问人:Jessica 提问时间:5/19/2022 更新时间:6/14/2022 访问量:1097
是否可以直接访问Redis共享内存(无需通过套接字)?
Is it possible to access Redis shared memory directly(without going through sockets)?
问:
我们有一个对延迟非常敏感的 Web 服务应用程序,我们正在考虑将 Redis 用于我们的用例,其中每个 Web 服务器节点都将在本地安装 Redis,并且这些 Web 服务器节点(每个都安装了 Redis)将相互同步 Redis 数据。
根据文档,Redis似乎是通过TCP端口访问的。我们想知道我们的 Web 服务器进程是否可以直接访问本地 Redis 实例的共享内存(使用指针?),而不必通过这些 TCP 套接字?
如果 Redis 不是合适的工具,您还会建议使用其他工具吗?
谢谢 杰西卡
答:
3赞
for_stack
5/19/2022
#1
不可以。
但是,您可以让 Redis 同时侦听 TCP 和 Unix 域套接字。TCP连接可用于与其他Redis实例同步数据。您可以使用 Unix Domain Socket 连接到本地 Redis 服务器。Unix 域套接字可能比 TCP 连接更快。
我没有用这种配置测试Redis,尽管我认为值得一试。你最好做一些基准测试。祝你好运!
评论
0赞
Jessica
5/19/2022
是否有其他缓存工具使客户端能够直接访问共享内存上的数据,而不是通过某种套接字?
0赞
for_stack
5/19/2022
我对此一无所知。
0赞
PUPPY
6/14/2022
#2
许多人使用 RDMA 和 DPDK 来减少网络 I/O 的延迟,在对冲基金等感知 Senario 中,已经用 Redis 在 DPDK 上做了很多工作(尽管它仍然通过 TCP/IP),在 DPDK 中,我们直接从用户空间接收数据,因此可以显着降低网络 IO 的延迟, 根据其他人所做的基准测试,它可以将单个 Redis 实例的持久性提高 30% 到 60%。
评论