Designing for Production
The information in the section discusses important topics you need to know about when designing your Redis Enterprise Software cluster for a production deployment.
The hardware requirements for Redis Enterprise Software (RS) are different for development and productions environments. Development environment hardware requirements If you are looking to do development, test or experimentation with RS, you can use non-production hardware (e.g. laptops, desktop, small VM/instance, etc.). Item Description Minimum Requirements Recommended # of nodes per cluster One node is fine, but to utilize the advanced cluster features at least two nodes are required.
When architecting a Redis Enterprise Software solution, there are some specific networking features that are worth your time to understand and implement. Multi-IP and IPv6 Redis Enterprise Software (RS) supports server/instances/VMs with multiple IP addresses, as well as IPv6 addresses. RS related traffic can be logically and physically divided into internal traffic and external traffic: "Internal traffic" refers to internal cluster communications, such as communications between the nodes for cluster management purposes.
When designing for production, there are key performance topics that you should read up on. Disk Sizing for Heavy Write Scenarios In extreme write scenarios, when AOF is enabled, the AOF rewrite process may require considerably more disk space for database persistence. To estimate the required persistent disk space in such cases, use the formula described below. The required persistent disk space for AOF rewrite purposes in extreme write scenarios, assuming identical shard sizes: X (1 + 3Y +Y²) where: X = each shard size Y = number of shards Following are examples of database configurations and the persistence disk space they would require in this scenario:
For each node in the cluster, you can configure both a persistent storage and an ephemeral storage path. Persistent storage is mandatory; it is used by the cluster to store information that needs to persist even if a shard or a node fails, e.g server logs, configurations, files. For example, if you choose any type of persistence for a database, then the persistence information is stored in this location. Ephemeral storage is optional.
Account Management To give each team member only the permissions that they need for their work with the cluster, RS lets you assign a role to each team member. You can manage team members and roles in settings > team, or with the REST API. The roles and permissions available in RS are: Database Nodes Cluster View metrics View config View redis password Edit config Reset Configuring TLS Authentication and Encryption To prevent unauthorized access to your data, RS databases support the TLS protocol (the more secure successor to SSL) that includes: Encryption - Makes sure that the traffic can only be read by the sender and recipient.
You can configure Redis Enterprise Software (RS) programmatically with client libraries or manually with the RS Web Console. Redis Client Libraries For connecting to RS databases with your Redis application, you can use any of the available client libraries listed on Redis.io. Discovery Service For the Discovery Service which utilizes the Redis Sentinel API, the following clients are tested and recommended: Redis-py (Python redis client) HiRedis (C redis client) Jedis (Java redis client) Ioredis (NodeJS redis client) If you need to use other clients with the Discovery Service, perhaps look at Sentinel Tunnel, a utility published by Redis Labs for this purpose.
Redis Enterprise Software (RS) is supported on several operating systems, cloud environments, and virtual environments. Note - Only 64-bit operating systems are supported. Platform Versions/Information Ubuntu 14.04, 16.04, 18.04 Server version is recommended for production installations. Desktop version is only recommended for development deployments. RHEL/CentOS 6 6.7, 6.8, 6.9 Requires at least "Minimal Install" configuration. RHEL/CentOS 7 7.
It is important to make sure that all cluster node's clocks are synchronized using Chrony and/or NTP. Without this synchronization, there may be problems with internal cluster communications and have downstream impacts. When you initially install Redis Enterprise Software, the install script asks for permission to configure a scheduled Cron job if it does not detect Chrony or NTP. This should make sure that the node's clock is always synchronized. If you did not confirm configuring this job during the installation process, you must use the Network Time Protocol (NTP) regularly to make sure that all server clocks are synchronized.