问题描述
一直对redis连接数和redis性能的关系一知半解,我知道redis是单进程单线程,但是具体就不清楚了.期间查了一些资料也没有找到想要的答案,希望能给一下详细的解释,或者给个链接也好
问题解答
回答1:redis内部采用epoll技术,即多路复用IO。对于连接数非常高的时候,有着更好的处理性能,而且redis是单线程的避免了上下文切换。
回答2:Redis is single threaded. How can I exploit multiple CPU / cores?It’s very unlikely that CPU becomes your bottleneck with Redis, as usually Redis is either memory or network bound. For instance, using pipelining Redis running on an average Linux system can deliver even 500k requests per second, so if your application mainly uses O(N) or O(log(N)) commands, it is hardly going to use too much CPU.However, to maximize CPU usage you can start multiple instances of Redis in the same box and treat them as different servers. At some point a single box may not be enough anyway, so if you want to use multiple CPUs you can start thinking of some way to shard earlier.You can find more information about using multiple Redis instances in the Partitioning page.
FAQ
回答3:redis多个客户端会造成很大的IO开销,每个节点间交换数据没有Ehcache那么复杂,各有有缺点吧,哈哈