# Configure database defaults

```json metadata
{
  "title": "Configure database defaults",
  "description": "Cluster-wide policies that determine default settings when creating new databases.",
  "categories": ["docs","operate","rs"],
  "tableOfContents": {"sections":[{"id":"edit-database-defaults","title":"Edit database defaults"},{"children":[{"id":"endpoint-configuration","title":"Endpoint configuration"},{"id":"database-proxy","title":"Database proxy"},{"id":"shards-placement","title":"Shards placement"},{"id":"database-version","title":"Database version"},{"id":"internode-encryption","title":"Internode encryption"}],"id":"database-defaults-db-defaults","title":"Database defaults {#db-defaults}"}]}

,
  "codeExamples": []
}
```
Database defaults are cluster-wide policies that determine default settings when creating new databases.

## Edit database defaults

To edit default database configuration using the Cluster Manager UI:

1. On the **Databases** screen, select ![images/rs/buttons/button-toggle-actions-vertical.png#no-click](https://redis.io/docs/latest/images/rs/buttons/button-toggle-actions-vertical.png#no-click) to open a list of additional actions.

1. Select **Database defaults**.

1. Configure [database defaults](#db-defaults).

    ![images/rs/screenshots/databases/db-defaults.png](https://redis.io/docs/latest/images/rs/screenshots/databases/db-defaults.png)

1. Select **Save**.

## Database defaults {#db-defaults}

### Endpoint configuration

You can choose a predefined endpoint configuration to use the recommended database proxy and shards placement policies for your use case. If you want to set these policies manually instead, select **Custom** endpoint configuration.

| Endpoint configuration | Database proxy | Shards placement | Description |
|-----------|------------|----------------|------------------|------------|
| Enterprise clustering | Single | Dense | Sets up a single endpoint that uses DNS to automatically reflect IP address updates after failover or topology changes. |
| Using a load balancer | All nodes | Sparse | Configure Redis with a load balancer like HAProxy or Nginx for environments without DNS. |
| Multiple endpoints | All primary shards | Sparse | To set up multiple endpoints, enable **OSS Cluster API** in the database settings and ensure client support. Clients initially connect to the primary node to retrieve the cluster topology, which allows direct connections to individual Redis proxies on each node. |
| Custom | Single, all primary shards, or all nodes | Dense or sparse | Manually choose default database proxy and shards placement policies. |

### Database proxy

Redis Software uses [proxies](https://redis.io/docs/latest/operate/rs/references/terminology#proxy) to manage and optimize access to database shards. Each node in the cluster runs a single proxy process, which can be active (receives incoming traffic) or passive (waits for failovers).

You can configure default [proxy policies](https://redis.io/docs/latest/operate/rs/databases/configure/proxy-policy) to determine which nodes' proxies are active and bound to new databases by default.

To configure the default database proxy policy using the Cluster Manager UI:

1. [**Edit database defaults**](#edit-database-defaults). 

1. Select a predefined [**Endpoint Configuration**](#endpoint-configuration) to use a recommended database proxy policy, or choose **Custom** to set the policy manually. Changing the database proxy default in the Cluster Manager UI affects both sharded and non-sharded proxy policies.

    ![images/rs/screenshots/databases/db-defaults-endpoint-config-custom.png](https://redis.io/docs/latest/images/rs/screenshots/databases/db-defaults-endpoint-config-custom.png)

#### Non-sharded proxy policy

To configure the default proxy policy for non-sharded databases, use one of the following methods:

- [rladmin tune cluster](https://redis.io/docs/latest/operate/rs/references/cli-utilities/rladmin/tune#tune-cluster): 
    
    ```sh
    rladmin tune cluster default_non_sharded_proxy_policy { single | all-master-shards | all-nodes }
    ```

- [Update cluster policy](https://redis.io/docs/latest/operate/rs/references/rest-api/requests/cluster/policy#put-cluster-policy) REST API request:

    ```sh
    PUT /v1/cluster/policy 
    { "default_non_sharded_proxy_policy": "single | all-master-shards | all-nodes" }
    ```

#### Sharded proxy policy

To configure the default proxy policy for sharded databases, use one of the following methods:

- [rladmin tune cluster](https://redis.io/docs/latest/operate/rs/references/cli-utilities/rladmin/tune#tune-cluster): 
    
    ```sh
    rladmin tune cluster default_sharded_proxy_policy { single | all-master-shards | all-nodes }
    ```

- [Update cluster policy](https://redis.io/docs/latest/operate/rs/references/rest-api/requests/cluster/policy#put-cluster-policy) REST API request:

    ```sh
    PUT /v1/cluster/policy 
    { "default_sharded_proxy_policy": "single | all-master-shards | all-nodes" }
    ```

### Shards placement

The default [shard placement policy](https://redis.io/docs/latest/operate/rs/databases/memory-performance/shard-placement-policy) determines the distribution of database shards across nodes in the cluster.

Shard placement policies include:

- `dense`: places shards on the smallest number of nodes.

- `sparse`: spreads shards across many nodes.

To configure default shard placement, use one of the following methods:

- Cluster Manager UI:

    1. [**Edit database defaults**](#edit-database-defaults). 

    1. Select a predefined [**Endpoint Configuration**](#endpoint-configuration) to use a recommended shards placement policy, or choose **Custom** to set the policy manually.

        ![images/rs/screenshots/databases/db-defaults-endpoint-config-custom.png](https://redis.io/docs/latest/images/rs/screenshots/databases/db-defaults-endpoint-config-custom.png)

- [rladmin tune cluster](https://redis.io/docs/latest/operate/rs/references/cli-utilities/rladmin/tune#tune-cluster): 
    
    ```sh
    rladmin tune cluster default_shards_placement { dense | sparse }
    ```

- [Update cluster policy](https://redis.io/docs/latest/operate/rs/references/rest-api/requests/cluster/policy#put-cluster-policy) REST API request:

    ```sh
    PUT /v1/cluster/policy 
    { "default_shards_placement": "dense | sparse" }
    ```

### Database version

New databases use the default Redis database version unless you select a different **Database version** when you [create a database](https://redis.io/docs/latest/operate/rs/databases/create) in the Cluster Manager UI or specify the `redis_version` in a [create database REST API request](https://redis.io/docs/latest/operate/rs/references/rest-api/requests/bdbs).

To configure the Redis database version, use one of the following methods:

- Cluster Manager UI: Edit **Database version** in [**Database defaults**](#edit-database-defaults)


- [rladmin tune cluster](https://redis.io/docs/latest/operate/rs/references/cli-utilities/rladmin/tune#tune-cluster): 
    
    ```sh
    rladmin tune cluster default_redis_version <x.y>
    ```

- [Update cluster policy](https://redis.io/docs/latest/operate/rs/references/rest-api/requests/cluster/policy#put-cluster-policy) REST API request:

    ```sh
    PUT /v1/cluster/policy 
    { "default_provisioned_redis_version": "x.y" }
    ```

### Internode encryption

Enable [internode encryption](https://redis.io/docs/latest/operate/rs/security/encryption/internode-encryption) to encrypt data in transit between nodes for new databases by default.

To enable or turn off internode encryption by default, use one of the following methods:

- Cluster Manager UI: Edit **Internode Encryption** in [**Database defaults**](#edit-database-defaults)

- [rladmin tune cluster](https://redis.io/docs/latest/operate/rs/references/cli-utilities/rladmin/tune#tune-cluster): 
    
    ```sh
    rladmin tune cluster data_internode_encryption { enabled | disabled }
    ```

- [Update cluster policy](https://redis.io/docs/latest/operate/rs/references/rest-api/requests/cluster/policy#put-cluster-policy) REST API request:

    ```sh
    PUT /v1/cluster/policy 
    { "data_internode_encryption": <boolean> }
    ```

