Performance testing
Start by using
redis-benchmark.exeto check the general throughput and latency characteristics of your cache before writing your own performance tests. For more information, see Redis-Benchmark.The client VM used for testing should be in the same region as your Redis cache instance.
Make sure the client VM you use has at least as much compute and bandwidth as the cache being tested.
It's important that you don't test the performance of your cache only under steady state conditions. Test under failover conditions too, and measure the CPU/Server Load on your cache during that time. You can start a failover by rebooting the primary node. Testing under failover conditions allows you to see the throughput and latency of your application during failover conditions. Failover can happen during updates or during an unplanned event. Ideally you don't want to see CPU/Server Load peak to more than say 80% even during a failover as that can affect performance.
Consider using Premium tier Azure Cache for Redis instances. These cache sizes have better network latency and throughput because they're running on better hardware for both CPU and network.
Note
Our observed performance results are published here for your reference. Also, be aware that SSL/TLS adds some overhead, so you may get different latencies and/or throughput if you're using transport encryption.
Redis-benchmark utility
Redis-benchmark documentation can be found here.
The redis-benchmark.exe doesn't support TLS. You'll have to enable the Non-TLS port through the Portal before you run the test. A Windows-compatible version of redis-benchmark.exe can be found here.
Redis-benchmark examples
Pre-test setup: Prepare the cache instance with data required for the latency and throughput testing:
redis-benchmark -h yourcache.redis.cache.windows.net -a yourAccesskey -t SET -n 10 -d 1024
To test latency: Test GET requests using a 1k payload:
redis-benchmark -h yourcache.redis.cache.windows.net -a yourAccesskey -t GET -d 1024 -P 50 -c 4
To test throughput: Pipelined GET requests with 1k payload:
redis-benchmark -h yourcache.redis.cache.windows.net -a yourAccesskey -t GET -n 1000000 -d 1024 -P 50 -c 50