Redis uses epoll technology internally, which is multiplexed IO. When the number of connections is very high, it has better processing performance, and redis is single-threaded to avoid context switching.
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.
Multiple redis clients will cause a lot of IO overhead. The data exchange between each node is not as complicated as Ehcache. Each has its own shortcomings, haha
Redis uses epoll technology internally, which is multiplexed IO. When the number of connections is very high, it has better processing performance, and redis is single-threaded to avoid context switching.
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
Multiple redis clients will cause a lot of IO overhead. The data exchange between each node is not as complicated as Ehcache. Each has its own shortcomings, haha