> For the complete documentation index, see [llms.txt](https://academy.cegedim.cloud/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://academy.cegedim.cloud/databases/valkey/valkey-features.md).

# Valkey - Features

Valkey can be deployed on a self-service basis via our cloud platform management tool: ITCare.

## Topologies <a href="#valkeyarchitecture-topologies" id="valkeyarchitecture-topologies"></a>

Two topologies are available:

* Standalone instance
* Sentinel cluster

In both cases, you can choose whether or not to persist data on disk when requesting creation, see [#persistence](https://academy.cegedim.cloud/databases/valkey/pages/uKGzwcWfbnJr5CybFk4E#persistence“mention”).

### Standalone instance <a href="#valkeyarchitecture-standalone" id="valkeyarchitecture-standalone"></a>

Once deployed, the standalone instance is accessible on listening port 6379.

### **Sentinel Cluster** <a href="#valkeyarchitecture-clustersentinel" id="valkeyarchitecture-clustersentinel"></a>

The Valkey Sentinel cluster is deployed on three instances distributed across all Availability Zones in an Area.

Once deployed, the cluster is accessible on listening port 6379.

#### Special features in cluster mode

* Each instance runs both Valkey **and** Sentinel processes
* Sentinel listening port: 26379
* Of the three instances, one is primary and the other two are replicas
* The replicas are open in read-only mode

## Persistence

Persistence refers to writing data to a durable medium, such as a solid-state disk (SSD). Valkey offers a range of persistence options.

* **RDB** (Valkey Database): RDB persistence takes point-in-time snapshots of your dataset at specified intervals.
* **AOF** (Append Only File): AOF persistence records every write operation received by the server. These operations can then be replayed when the server starts up, reconstructing the original dataset. Commands are recorded in the same format as the Valkey protocol itself.
* **No persistence**: You can disable persistence completely. This option is sometimes used for caching.
* **RDB + AOF**: You can also combine AOF and RDB in the same instance.

{% embed url="<https://valkey.io/topics/persistence/>" %}

<table><thead><tr><th width="285">Scenario</th><th>Settings</th></tr></thead><tbody><tr><td>If <strong>RDB</strong> persistence enabled</td><td><ul><li>save 3600 1</li><li>save 300 100</li><li>save 60 10000</li></ul></td></tr><tr><td>If <strong>AOF</strong> persistence enabled</td><td><ul><li>append fsync every sec</li></ul></td></tr></tbody></table>

## Resilience <a href="#valkeyarchitecture-resilience" id="valkeyarchitecture-resilience"></a>

If the primary instance fails, a replica will automatically be promoted as the new primary. The replica will be automatically reconfigured to follow the new primary.

Sentinel provides information about the primary instance and replica instances.

## Features <a href="#valkeyarchitecture-features" id="valkeyarchitecture-features"></a>

This section lists the features available to the customer, as well as how to request or execute them:

<table data-header-hidden><thead><tr><th width="176"></th><th></th></tr></thead><tbody><tr><td><strong>Self-service</strong></td><td>The customer can perform an action independently.</td></tr><tr><td><strong>On request</strong></td><td>The customer can ask the cegedim.cloud support team to take the necessary measures.</td></tr></tbody></table>

<table data-full-width="true"><thead><tr><th width="323">Features</th><th width="137">Self-service</th><th width="145.5">On request</th><th>Comments</th></tr></thead><tbody><tr><td>SSH access</td><td>false</td><td>false</td><td>SSH access is disabled and reserved for cegedim.cloud administrators.</td></tr><tr><td>Modify configuration file</td><td>false</td><td>true</td><td>On request via a ticket.</td></tr><tr><td>Access to Valkey/Sentinel</td><td>true</td><td>true</td><td>The customer can log in to Valkey and Sentinel with an account (password defined by the customer in the provisioning wizard).</td></tr></tbody></table>

## High-level diagram

## Configuration

### Product Configuration <a href="#valkeyarchitecture-productconfiguration" id="valkeyarchitecture-productconfiguration"></a>

<table data-full-width="true"><thead><tr><th width="200">Settings</th><th width="294">Custom value</th><th width="97.5" data-type="checkbox">Enforced</th><th>Comments</th></tr></thead><tbody><tr><td>bind</td><td>@IP 127.0.0.1</td><td>false</td><td>Listening address</td></tr><tr><td>timeout</td><td>300</td><td>false</td><td>Close the connection after a client is idle for N seconds (0 to disable)</td></tr><tr><td>logfile</td><td>/var/log/valkey/valkey-server.log</td><td>true</td><td>Log file path</td></tr><tr><td>supervised</td><td>systemd</td><td>true</td><td>Supervision interaction</td></tr></tbody></table>

If **AOF persistence** is active, the following parameters will be applied:

<table data-full-width="false"><thead><tr><th width="198.5">Settings</th><th width="358">Custom value</th><th data-type="checkbox">Enforced</th></tr></thead><tbody><tr><td>appendonly</td><td>yes</td><td>false</td></tr><tr><td>dir</td><td>/var/lib/valkey/persistance</td><td>true</td></tr><tr><td>appendfsync</td><td>everysec</td><td>false</td></tr></tbody></table>

if **RDB** is active, the following parameters will be applied:

<table data-full-width="false"><thead><tr><th width="202">Settings</th><th width="354.33333333333337">Custom value</th><th data-type="checkbox">Enforced</th></tr></thead><tbody><tr><td>save</td><td>3600 1</td><td>false</td></tr><tr><td>save</td><td>300 100</td><td>false</td></tr><tr><td>save</td><td>60 10000</td><td>false</td></tr><tr><td>rdb_compression</td><td>oui</td><td>false</td></tr><tr><td>rdbchecksum</td><td>oui</td><td>false</td></tr><tr><td>dir</td><td>/var/lib/valkey/persistance</td><td>true</td></tr></tbody></table>

### Kernel configuration <a href="#valkeyarchitecture-kernelconfiguration" id="valkeyarchitecture-kernelconfiguration"></a>

The following kernel parameters have been modified to optimize operating system performance for Valkey :

* vm.overcommit\_memory = 1
* vm.swappiness = 1
* net.core.somaxconn = 65535

## Security <a href="#valkeyarchitecture-security" id="valkeyarchitecture-security"></a>

### Authentification <a href="#valkeyarchitecture-authentication" id="valkeyarchitecture-authentication"></a>

The authentication mode used is : Access Control List.

Passwords are hashed with SHA-256 and do not appear in plain text in the ACL file.

### Authorizations <a href="#valkeyarchitecture-authorizations" id="valkeyarchitecture-authorizations"></a>

ACLs are used to manage authorizations.

On Sentinel, the dedicated client account has rights to :

{% code overflow="wrap" %}

```
~* &* +@all -@admin +acl +info +sentinel|get-master-addr-by-name +sentinel|is-master-down-by-addr +sentinel|master +sentinel|masters +sentinel|myid +sentinel|replicas +sentinel|slaves +sentinel|sentinels
```

{% endcode %}

On Valkey, the dedicated customer account has rights to :

{% code overflow="wrap" %}

```
~* &* +@all -@dangerous +acl +config|help +config|get
```

{% endcode %}

### Secure Transport <a href="#valkeyarchitecture-securetransport" id="valkeyarchitecture-securetransport"></a>

The customer can choose whether or not to activate TLS transport when requesting self-service creation via ITCare.

### Password <a href="#valkeyarchitecture-password" id="valkeyarchitecture-password"></a>

This section describes password management:

<table data-full-width="true"><thead><tr><th width="230.2">Password</th><th width="231" data-type="checkbox">Stored by cegedim.cloud</th><th data-type="checkbox">Stored by customer</th><th width="139" data-type="checkbox">Enforced</th><th>Hash</th></tr></thead><tbody><tr><td>customer account</td><td>false</td><td>true</td><td>false</td><td>SHA-256</td></tr><tr><td>ANY other account</td><td>false</td><td>true</td><td>false</td><td>SHA-256</td></tr><tr><td>cgdm_admin account</td><td>true</td><td>false</td><td>true</td><td>SHA-256</td></tr><tr><td>cgdm_monitor account</td><td>true</td><td>false</td><td>true</td><td>SHA-256</td></tr></tbody></table>

## Monitoring <a href="#valkeyarchitecture-monitoring" id="valkeyarchitecture-monitoring"></a>

The following items are monitored and are accessible in ITCare.

<table data-full-width="false"><thead><tr><th width="390">Alerts</th><th>Description</th></tr></thead><tbody><tr><td>DBS_VALKEY_CLI_CLIENTS</td><td>Check connected clients count</td></tr><tr><td>DBS_VALKEY_CLI_AOF_STATUS</td><td>Check aof status</td></tr><tr><td>DBS_VALKEY_CLI_COMMANDS</td><td>Number of commands processed</td></tr><tr><td>DBS_VALKEY_CLI_CONNECTIONS</td><td>Number of connections</td></tr><tr><td>DBS_VALKEY_CLI_CPU</td><td>CPU usage</td></tr><tr><td>DBS_VALKEY_CLI_MEMORY</td><td>Memory usage</td></tr><tr><td>DBS_VALKEY_CLI_REPL_REPLICAS_COUNT</td><td>Check replicas count</td></tr><tr><td>DBS_VALKEY_CLI_RDB_STATUS</td><td>RDB status</td></tr><tr><td>DBS_VALKEY_PING</td><td>Check node availability</td></tr><tr><td>DBS_VALKEY_SENTINEL_MASTER_UP</td><td>Checks the status of the master from Sentinel</td></tr><tr><td>DBS_VALKEY_SENTINEL_SLAVES_COUNT</td><td>Check replicas count from Sentinel</td></tr><tr><td>DBS_VALKEY_SENTINEL_SENTINELS_COUNT</td><td>Check Sentinelscount</td></tr><tr><td>DBS_VALKEY_SENTINEL_QUORUM</td><td>Check quorum status</td></tr><tr><td>TLS_VALKEY_CERT_EXPIRATION</td><td>Check Valkey certificate expiration</td></tr><tr><td>TLS_SENTINEL_CERT_EXPIRATION</td><td>Check Sentinel certificate expiration</td></tr></tbody></table>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://academy.cegedim.cloud/databases/valkey/valkey-features.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
