Redis Server Test

The two most important factors that influence the performance level of the Redis server, are:

  • Keyspace hits/misses

  • Server latency

A keyspace miss means some piece of data you tried to retrieve from Redis was not there. If this happens very often, it can adversely impact user satisfaction with the Redis server.

Latency measures the average time it takes the Redis server to respond. Since a single process on the Redis server serves all client requests, one slow client request can delay the processing of other requests. Once again, user experience with the Redis server will suffer.

By monitoring keyspace usage and latency closely, the Redis Server test brings frequent keyspace misses and request processing bottlenecks to the immediate attention of administrators. This prompts administrators to investigate, isolate, and eliminate the root-cause of these issues, thereby improving overall Redis server performance and the user experience with it.

Target of the test :A Redis server

Agent deploying the test : An internal agent (recommended)

Outputs of the test : One set of results for the target Redis server

Configurable parameters for the test
Parameters Description

Test period

How often should the test be executed

Host

The host for which the test is to be configured.

Port

The port at which the specified HOST listens.

Redis Password and Confirm Password

In some high security environments, a password may have been set for the Redis server, so as to protect it from unauthorized accesses/abuse. If such a password has been set for the monitored Redis server, then specify that password against REDIS PASSWORD. Then, confirm the password by retyping it against CONFIRM PASSWORD.

If the Redis server is not password protected, then do not disturb the default setting of this parameter.

To determine whether/not the target Redis server is password-protected, do the following:

  • Login to the system hosting the Redis server.

  • Open the redis.conf file in the <REDIS_INSTALL_DIR>.

  • Look for the requirepass parameter in the file.

  • If this parameter exists, and is not preceded by a # (hash) symbol, it means that password protection is enabled for the Redis server. In this case, the string that follows the requirepass parameter is the password of the Redis server. For instance, say that the requirepass specification reads as follows:

    requirepass red1spr0

    According to this specification, the Redis server is protected using the password red1spr0. In this case therefore, you need to specify red1spr0 against REDIS PASSWORD.

  • On the other hand, if the requirepass parameter is prefixed by the # (hash) symbol as shown below, it means password protection is disabled.

    # requirepass red1spr0

    In this case, leave the REDIS PASSWORD parameter with its default setting.

Measurements made by the test
Measurement Description Measurement Unit Interpretation

Keyspace hit ratio

Indicates the percentage of requests to the keyspace that were serviced successfully.

Percent

Keyspace refers to the internal dictionary that Redis manages, in which all keys are stored

The value of this measure is computed using the formula:

(Total key hits)/ (Total keys hits + Total key misses)

Ideally, the value of this measure should be higher than 80%. A lower value implies that the keyspace is consistently failing to service requests it receives, because the data being requested is not available in the keyspace. This usually means that one of the following happened:

  • The key expired

  • They key was renamed

  • The key was deleted

  • The key was evicted due to memory pressure

  • The entire database was flushed

  • The key was never actually inserted

  • The data was lost due to a crash, failover, etc.

  • The data is in a different DB than the one you currently selected

A lower hit ratio results in larger latency as most of the requests are fetching data from the disk. It indicates that you need to increase the size of the keyspace to improve your application’s performance.

Latency

Indicates the average time the Redis server took to respond to client requests.

Milliseconds

A low value is desired for this measure.

An unusually high value is a cause for concern, as it implies that the Redis server is not responding quickly to requests. Common causes for high latencies are:

  • Slow commands

  • Client connection overload on the server

  • Poor memory management

  • Low keyspace hit ratio