We have a very latency sensitive web service application and we’re thinking of using Redis for our use case where each web server node will have Redis installed locally and these web server nodes(each with Redis installed) will sync Redis data with each other.
Based on the documentation, it seems that Redis is accessed through TCP ports. We’re wondering if it’s possible for our web server process to directly access our local Redis instance’s shared memory(using pointers?) instead of having to go through those TCP sockets?
If Redis is not the right tool, is there any other tool that you’d suggest?
Thanks,
Jessica
2
Answers
No, you cannot.
However, you can make Redis listen on both TCP and Unix Domain Socket. TCP connection can be used for syncing data with other Redis instances. And you can connect to local Redis server with Unix Domain Socket. Unix Domain Socket might be faster than TCP connection.
I did not test Redis with this configuration, although I think it worth a try. You’d better do some benchmark with. Good luck!
many people use RDMA and DPDK to reduce the latency of network i/o in sentitive senario like hedge fund, there are lots of works had been done on dpdk with Redis ( though it’s still through tcp/ip), in dpdk we receive the data from user space directly so the latency of network io can be decrease significantly, according to the benchmark done by others , it can improve the permance of single redis instance for 30% to 60%.