

# Configuring engine parameters using parameter groups
<a name="parametergroups"></a>

MemoryDB uses parameters to control the runtime properties of your nodes and clusters. Generally, newer engine versions include additional parameters to support the newer functionality. For tables of parameters, see [Engine specific parameters](parametergroups.redis.md).

As you would expect, some parameter values, such as `maxmemory`, are determined by the engine and node type. For a table of these parameter values by node type, see [MemoryDB node-type specific parameters](parametergroups.redis.md#parametergroups.redis.nodespecific).

**Topics**
+ [

# Parameter management
](parametergroups.management.md)
+ [

# Parameter group tiers
](parametergroups.tiers.md)
+ [

# Creating a parameter group
](parametergroups.creating.md)
+ [

# Listing parameter groups by name
](parametergroups.listingGroups.md)
+ [

# Listing a parameter group's values
](parametergroups.listingValues.md)
+ [

# Modifying a parameter group
](parametergroups.modifying.md)
+ [

# Deleting a parameter group
](parametergroups.deleting.md)
+ [

# Engine specific parameters
](parametergroups.redis.md)

# Parameter management
<a name="parametergroups.management"></a>

Parameters are grouped together into named parameter groups for easier parameter management. A parameter group represents a combination of specific values for the parameters that are passed to the engine software during startup. These values determine how the engine processes on each node behave at runtime. The parameter values on a specific parameter group apply to all nodes that are associated with the group, regardless of which cluster they belong to.

To fine-tune your cluster's performance, you can modify some parameter values or change the cluster's parameter group.
+ You cannot modify or delete the default parameter groups. If you need custom parameter values, you must create a custom parameter group.
+ The parameter group family and the cluster you're assigning it to must be compatible. For example, if your cluster is running Redis OSS version 6, you can only use parameter groups, default or custom, from the memorydb\$1redis6 family.
+ When you change a cluster's parameters, the change is applied to the cluster immediately. This is true whether you change the cluster's parameter group itself or a parameter value within the cluster's parameter group. 

# Parameter group tiers
<a name="parametergroups.tiers"></a>

*MemoryDB parameter group tiers*

**Global Default**

The top-level root parameter group for all MemoryDB customers in the region.

The global default parameter group:
+ Is reserved for MemoryDB and not available to the customer.

**Customer Default**

A copy of the Global Default parameter group which is created for the customer's use.

The Customer Default parameter group:
+ Is created and owned by MemoryDB.
+ Is available to the customer for use as a parameter group for any clusters running an engine version supported by this parameter group.
+ Cannot be edited by the customer.

**Customer Owned**

A copy of the Customer Default parameter group. A Customer Owned parameter group is created whenever the customer creates a parameter group.

The Customer Owned parameter group:
+ Is created and owned by the customer.
+ Can be assigned to any of the customer's compatible clusters.
+ Can be modified by the customer to create a custom parameter group. 

   Not all parameter values can be modified. For more information, see [Engine specific parameters](parametergroups.redis.md).

# Creating a parameter group
<a name="parametergroups.creating"></a>

You need to create a new parameter group if there is one or more parameter values that you want changed from the default values. You can create a parameter group using the MemoryDB console, the AWS CLI, or the MemoryDB API.

## Creating a parameter group (Console)
<a name="parametergroups.creatingclusters.viewdetails"></a>

The following procedure shows how to create a parameter group using the MemoryDB console.

**To create a parameter group using the MemoryDB console**

1. Sign in to the AWS Management Console and open the MemoryDB console at [https://console.aws.amazon.com/memorydb/](https://console.aws.amazon.com/memorydb/).

1. To see a list of all available parameter groups, in the left hand navigation pane choose **Parameter Groups**.

1. To create a parameter group, choose **Create parameter group**.

   The **Create parameter group** page appears.

1. In the **Name** box, type in a unique name for this parameter group.

   When creating a cluster or modifying a cluster's parameter group, you will choose the parameter group by its name. Therefore, we recommend that the name be informative and somehow identify the parameter group's family.

   Parameter group naming constraints are as follows:
   + Must begin with an ASCII letter.
   + Can only contain ASCII letters, digits, and hyphens.
   + Must be 1–255 characters long.
   + Can't contain two consecutive hyphens.
   + Can't end with a hyphen.

1. In the **Description** box, type in a description for the parameter group.

1. In the engine version compatibility box, choose an engine version that this parameter group corresponds to.

1. In the **Tags**, optionally add tags to search and filter your parameter groups or track your AWS costs.

1. To create the parameter group, choose **Create**.

   To terminate the process without creating the parameter group, choose **Cancel**.

1. When the parameter group is created, it will have the family's default values. To change the default values you must modify the parameter group. For more information, see [Modifying a parameter group](parametergroups.modifying.md).

## Creating a parameter group (AWS CLI)
<a name="parametergroups.creating.cli"></a>

To create a parameter group using the AWS CLI, use the command `create-parameter-group` with these parameters.
+ `--parameter-group-name` — The name of the parameter group.

  Parameter group naming constraints are as follows:
  + Must begin with an ASCII letter.
  + Can only contain ASCII letters, digits, and hyphens.
  + Must be 1–255 characters long.
  + Can't contain two consecutive hyphens.
  + Can't end with a hyphen.
+ `--family` — The engine and version family for the parameter group.
+ `--description` — A user supplied description for the parameter group.

**Example**  
The following example creates a parameter group named *myRedis6x* using the memorydb\$1redis6 family as the template.   
For Linux, macOS, or Unix:  

```
aws memorydb create-parameter-group \
    --parameter-group-name myRedis6x  \
    --family memorydb_redis6 \
    --description "My first parameter group"
```
For Windows:  

```
aws memorydb create-parameter-group ^
    --parameter-group-name myRedis6x  ^
    --family memorydb_redis6 ^
    --description "My first parameter group"
```
The output from this command should look something like this.  

```
{
    "ParameterGroup": {
        "Name": "myRedis6x", 
        "Family": "memorydb_redis6",
        "Description": "My first parameter group",
        "ARN": "arn:aws:memorydb:us-east-1:012345678912:parametergroup/myredis6x"
    }
}
```

When the parameter group is created, it will have the family's default values. To change the default values you must modify the parameter group. For more information, see [Modifying a parameter group](parametergroups.modifying.md).

For more information, see [https://docs.aws.amazon.com/cli/latest/reference/memorydb/create-parameter-group.html](https://docs.aws.amazon.com/cli/latest/reference/memorydb/create-parameter-group.html).

## Creating a parameter group (MemoryDB API)
<a name="parametergroups.creating.api"></a>

To create a parameter group using the MemoryDB API, use the `CreateParameterGroup` action with these parameters.
+ `ParameterGroupName` — The name of the parameter group.

  Parameter group naming constraints are as follows:
  + Must begin with an ASCII letter.
  + Can only contain ASCII letters, digits, and hyphens.
  + Must be 1–255 characters long.
  + Can't contain two consecutive hyphens.
  + Can't end with a hyphen.
+ `Family` — The engine and version family for the parameter group. For example, `memorydb_redis6`.
+ `Description` — A user supplied description for the parameter group.

**Example**  
The following example creates a parameter group named *myRedis6x* using the memorydb\$1redis6 family as the template.   

```
https://memory-db.us-east-1.amazonaws.com/
   ?Action=CreateParameterGroup
   &Family=memorydb_redis6
   &ParameterGroupName=myRedis6x
   &Description=My%20first%20parameter%20group
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Timestamp=20210802T192317Z
   &Version=2021-01-01
   &X-Amz-Credential=<credential>
```
The response from this action should look something like this.  

```
<CreateParameterGroupResponse xmlns="http://memory-db.us-east-1.amazonaws.com/doc/2021-01-01/">
  <CreateParameterGroupResult>
    <ParameterGroup>
      <Name>myRedis6x</Name>
      <Family>memorydb_redis6</Family>
      <Description>My first parameter group</Description>
      <ARN>arn:aws:memorydb:us-east-1:012345678912:parametergroup/myredis6x</ARN>
    </ParameterGroup>
  </CreateParameterGroupResult>
  <ResponseMetadata>
    <RequestId>d8465952-af48-11e0-8d36-859edca6f4b8</RequestId>
  </ResponseMetadata>
</CreateParameterGroupResponse>
```

When the parameter group is created, it will have the family's default values. To change the default values you must modify the parameter group. For more information, see [Modifying a parameter group](parametergroups.modifying.md).

For more information, see [https://docs.aws.amazon.com/memorydb/latest/APIReference/API_CreateParameterGroup.html](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_CreateParameterGroup.html).

# Listing parameter groups by name
<a name="parametergroups.listingGroups"></a>

You can list the parameter groups using the MemoryDB console, the AWS CLI, or the MemoryDB API.

## Listing parameter groups by name (Console)
<a name="parametergroups.listingGroupsclusters.viewdetails"></a>

The following procedure shows how to view a list of the parameter groups using the MemoryDB console.

**To list parameter groups using the MemoryDB console**

1. Sign in to the AWS Management Console and open the MemoryDB console at [https://console.aws.amazon.com/memorydb/](https://console.aws.amazon.com/memorydb/).

1. To see a list of all available parameter groups, in the left hand navigation pane choose **Parameter Groups**.

## Listing parameter groups by name (AWS CLI)
<a name="parametergroups.listingGroups.cli"></a>

To generate a list of parameter groups using the AWS CLI, use the command `describe-parameter-groups`. If you provide a parameter group's name, only that parameter group will be listed. If you do not provide a parameter group's name, up to `--max-results` parameter groups will be listed. In either case, the parameter group's name, family, and description are listed.

**Example**  
The following sample code lists the parameter group *myRedis6x*.  
For Linux, macOS, or Unix:  

```
aws memorydb describe-parameter-groups \
    --parameter-group-name myRedis6x
```
For Windows:  

```
aws memorydb describe-parameter-groups ^
    --parameter-group-name myRedis6x
```
The output of this command will look something like this, listing the name, family, and description for the parameter group.  

```
{
    "ParameterGroups": [
	    {
	        "Name": "myRedis6x", 
	        "Family": "memorydb_redis6",
	        "Description": "My first parameter group",
                "ARN": "arn:aws:memorydb:us-east-1:012345678912:parametergroup/myredis6x"
	    }
    ]
}
```

**Example**  
The following sample code lists the parameter group *myRedis6x* for parameter groups running on Valkey, or on Redis OSS engine version 5.0.6 onwards.   
For Linux, macOS, or Unix:  

```
aws memorydb describe-parameter-groups \
    --parameter-group-name myRedis6x
```
For Windows:  

```
aws memorydb describe-parameter-groups ^
    --parameter-group-name myRedis6x
```
The output of this command will look something like this, listing the name, family and description for the parameter group.  

```
{
    "ParameterGroups": [
	    {
	        "Name": "myRedis6x", 
	        "Family": "memorydb_redis6",
	        "Description": "My first parameter group",
                "ARN": "arn:aws:memorydb:us-east-1:012345678912:parametergroup/myredis6x"
	    }
    ]
}
```

**Example**  
The following sample code lists up to 20 parameter groups.  

```
aws memorydb describe-parameter-groups --max-results 20
```
The JSON output of this command will look something like this, listing the name, family and description for each parameter group.  

```
{
    "ParameterGroups": [
        {
            "ParameterGroupName": "default.memorydb-redis6",
            "Family": "memorydb_redis6",
            "Description": "Default parameter group for memorydb_redis6",
            "ARN": "arn:aws:memorydb:us-east-1:012345678912:parametergroup/default.memorydb-redis6"
        }, 
        ...
    ]
}
```

For more information, see [https://docs.aws.amazon.com/cli/latest/reference/memorydb/describe-parameter-groups.html](https://docs.aws.amazon.com/cli/latest/reference/memorydb/describe-parameter-groups.html).

## Listing parameter groups by name (MemoryDB API)
<a name="parametergroups.listingGroups.api"></a>

To generate a list of parameter groups using the MemoryDB API, use the `DescribeParameterGroups` action. If you provide a parameter group's name, only that parameter group will be listed. If you do not provide a parameter group's name, up to `MaxResults` parameter groups will be listed. In either case, the parameter group's name, family, and description are listed.

**Example**  
The following sample code lists up to 20 parameter groups.  

```
https://memory-db.us-east-1.amazonaws.com/
   ?Action=DescribeParameterGroups
   &MaxResults=20
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Timestamp=20210802T192317Z
   &Version=2021-01-01
   &X-Amz-Credential=<credential>
```
The response from this action will look something like this, listing the name, family and description in the case of memorydb\$1redis6, for each parameter group.  

```
<DescribeParameterGroupsResponse xmlns="http://memory-db.us-east-1.amazonaws.com/doc/2021-01-01/">
  <DescribeParameterGroupsResult>
    <ParameterGroups>
      <ParameterGroup>
        <Name>myRedis6x</Name>
        <Family>memorydb_redis6</Family>
        <Description>My custom Redis OSS 6 parameter group</Description>
        <ARN>arn:aws:memorydb:us-east-1:012345678912:parametergroup/myredis6x</ARN>
      </ParameterGroup>     
       <ParameterGroup>
        <Name>default.memorydb-redis6</Name>
        <Family>memorydb_redis6</Family>
        <Description>Default parameter group for memorydb_redis6</Description>
        <ARN>arn:aws:memorydb:us-east-1:012345678912:parametergroup/default.memorydb-redis6</ARN>
      </ParameterGroup>
    </ParameterGroups>
  </DescribeParameterGroupsResult>
  <ResponseMetadata>
    <RequestId>3540cc3d-af48-11e0-97f9-279771c4477e</RequestId>
  </ResponseMetadata>
</DescribeParameterGroupsResponse>
```

**Example**  
The following sample code lists the parameter group *myRedis6x*.  

```
https://memory-db.us-east-1.amazonaws.com/
   ?Action=DescribeParameterGroups
   &ParameterGroupName=myRedis6x
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Timestamp=20210802T192317Z
   &Version=2021-01-01
   &X-Amz-Credential=<credential>
```
The response from this action will look something like this, listing the name, family, and description.  

```
<DescribeParameterGroupsResponse xmlns="http://memory-db.us-east-1.amazonaws.com/doc/2021-01-01/">
  <DescribeParameterGroupsResult>
    <ParameterGroups>
      <ParameterGroup>
        <Name>myRedis6x</Name>
        <Family>memorydb_redis6</Family>
        <Description>My custom Redis OSS 6 parameter group</Description>
        <ARN>arn:aws:memorydb:us-east-1:012345678912:parametergroup/myredis6x</ARN>
      </ParameterGroup>
    </ParameterGroups>
  </DescribeParameterGroupsResult>
  <ResponseMetadata>
    <RequestId>3540cc3d-af48-11e0-97f9-279771c4477e</RequestId>
  </ResponseMetadata>
</DescribeParameterGroupsResponse>
```

For more information, see [https://docs.aws.amazon.com/memorydb/latest/APIReference/API_DescribeParameterGroups.html](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_DescribeParameterGroups.html).

# Listing a parameter group's values
<a name="parametergroups.listingValues"></a>

You can list the parameters and their values for a parameter group using the MemoryDB console, the AWS CLI, or the MemoryDB API.

## Listing a parameter group's values (Console)
<a name="parametergroups.listingValuesclusters.viewdetails"></a>

The following procedure shows how to list the parameters and their values for a parameter group using the MemoryDB console.

**To list a parameter group's parameters and their values using the MemoryDB console**

1. Sign in to the AWS Management Console and open the MemoryDB console at [https://console.aws.amazon.com/memorydb/](https://console.aws.amazon.com/memorydb/).

1. To see a list of all available parameter groups, in the left hand navigation pane choose **Parameter Groups**.

1. Choose the parameter group for which you want to list the parameters and values by choosing name (not the box next to it) of the parameter group's name.

   The parameters and their values will be listed at the bottom of the screen. Due to the number of parameters, you may have to scroll up and down to find the parameter you're interested in.

## Listing a parameter group's values (AWS CLI)
<a name="parametergroups.listingValues.cli"></a>

To list a parameter group's parameters and their values using the AWS CLI, use the command `describe-parameters`.

**Example**  
The following sample code list all the parameters and their values for the parameter group *myRedis6x*.  
For Linux, macOS, or Unix:  

```
aws memorydb describe-parameters \
    --parameter-group-name myRedis6x
```
For Windows:  

```
aws memorydb describe-parameters ^
    --parameter-group-name myRedis6x
```

For more information, see [https://docs.aws.amazon.com/cli/latest/reference/memorydb/describe-parameters.html](https://docs.aws.amazon.com/cli/latest/reference/memorydb/describe-parameters.html).

## Listing a parameter group's values (MemoryDB API)
<a name="parametergroups.listingValues.api"></a>

To list a parameter group's parameters and their values using the MemoryDB API, use the `DescribeParameters` action.

For more information, see [https://docs.aws.amazon.com/memorydb/latest/APIReference/API_DescribeParameters.html](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_DescribeParameters.html).

# Modifying a parameter group
<a name="parametergroups.modifying"></a>

**Important**  
You cannot modify any default parameter group.

You can modify some parameter values in a parameter group. These parameter values are applied to clusters associated with the parameter group. For more information on when a parameter value change is applied to a parameter group, see [Engine specific parameters](parametergroups.redis.md).

## Modifying a parameter group (Console)
<a name="parametergroups.modifyingclusters.viewdetails"></a>

The following procedure shows how to change the parameter's value using the MemoryDB console. You would use the same procedure to change the value of any parameter.

**To change a parameter's value using the MemoryDB console**

1. Sign in to the AWS Management Console and open the MemoryDB console at [https://console.aws.amazon.com/memorydb/](https://console.aws.amazon.com/memorydb/).

1. To see a list of all available parameter groups, in the left hand navigation pane choose **Parameter Groups**.

1. Choose the parameter group you want to modify by choosing the radio button to the left of the parameter group's name.

   Choose **Actions** and then **View details**. Alternatively, you can also choose the parameter group name to go to the details page. 

1. To modify the parameter, choose **Edit**. All the editable parameters will be enabled to be edited. You may have to move across pages to find the parameter you want to change. Alternatively, you can search for the parameter by name, value or type in the search box. 

1. Make any necessary parameter modifications.

1. To save your changes, choose **Save changes**.

1. If you modified parameter values across number of pages, you can review all the changes by choosing **Preview changes**. To confirm the changes, choose **Save changes**. To make more modifications, choose **back**. 

1. The **Parameter details** page also gives you the option to reset to default values. To reset to default values, choose **Reset to defaults**. Checkboxes will appear on the left side of all the parameters. You can select the ones you want to reset and choose **Proceed to reset** to confirm. 

   Choose **confirm** to confirm the reset action on the dialogue box. 

1. The parameter details page allows you to set the number of parameters you want to see on each page. Use the cogwheel on the right side to make those changes. You can also enable/disable the columns you want on the details page. These changes last through the session of the console. 

   To find the name of the parameter you changed, see [Engine specific parameters](parametergroups.redis.md). 



## Modifying a parameter group (AWS CLI)
<a name="parametergroups.modifying.cli"></a>

To change a parameter's value using the AWS CLI, use the command `update-parameter-group`.

To find the name and permitted values of the parameter you want to change, see [Engine specific parameters](parametergroups.redis.md)

For more information, see [update-parameter-group](https://docs.aws.amazon.com//cli/latest/reference/memorydb/update-parameter-group.html).

## Modifying a parameter group (MemoryDB API)
<a name="parametergroups.modifying.api"></a>

To change a parameter group's parameter values using the MemoryDB API, use the `UpdateParameterGroup` action.

To find the name and permitted values of the parameter you want to change, see [Engine specific parameters](parametergroups.redis.md)

For more information, see [https://docs.aws.amazon.com/memorydb/latest/APIReference/API_UpdateParameterGroup.html](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_UpdateParameterGroup.html).

# Deleting a parameter group
<a name="parametergroups.deleting"></a>

You can delete a custom parameter group using the MemoryDB console, the AWS CLI, or the MemoryDB API.

You cannot delete a parameter group if it is associated with any clusters. Nor can you delete any of the default parameter groups.

## Deleting a parameter group (Console)
<a name="parametergroups.deletingclusters.viewdetails"></a>

The following procedure shows how to delete a parameter group using the MemoryDB console.

**To delete a parameter group using the MemoryDB console**

1. Sign in to the AWS Management Console and open the MemoryDB console at [https://console.aws.amazon.com/memorydb/](https://console.aws.amazon.com/memorydb/).

1. To see a list of all available parameter groups, in the left hand navigation pane choose **Parameter Groups**.

1. Choose the parameter groups you want to delete by choosing the radio button to the left of the parameter group's name.

   Choose **Actions** and then choose **Delete**.

1. The **Delete Parameter Groups** confirmation screen will appear.

1. To delete the parameter groups enter **Delete** in the confirmation text box.

   To keep the parameter groups, choose **Cancel**.

## Deleting a parameter group (AWS CLI)
<a name="parametergroups.deleting.cli"></a>

To delete a parameter group using the AWS CLI, use the command `delete-parameter-group`. For the parameter group to delete, the parameter group specified by `--parameter-group-name` cannot have any clusters associated with it, nor can it be a default parameter group.

The following sample code deletes the *myRedis6x* parameter group.

**Example**  
For Linux, macOS, or Unix:  

```
aws memorydb delete-parameter-group \
    --parameter-group-name myRedis6x
```
For Windows:  

```
aws memorydb delete-parameter-group ^
    --parameter-group-name myRedis6x
```

For more information, see [delete-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/memorydb/delete-parameter-group.html).

## Deleting a parameter group (MemoryDB API)
<a name="parametergroups.deleting.api"></a>

To delete a parameter group using the MemoryDB API, use the `DeleteParameterGroup` action. For the parameter group to delete, the parameter group specified by `ParameterGroupName` cannot have any clusters associated with it, nor can it be a default parameter group.

**Example**  
The following sample code deletes the *myRedis6x* parameter group.  

```
https://memory-db.us-east-1.amazonaws.com/
   ?Action=DeleteParameterGroup
   &ParameterGroupName=myRedis6x
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Timestamp=20210802T192317Z
   &Version=2021-01-01
   &X-Amz-Credential=<credential>
```

For more information, see [https://docs.aws.amazon.com/memorydb/latest/APIReference/API_DeleteParameterGroup.html](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_DeleteParameterGroup.html).

# Engine specific parameters
<a name="parametergroups.redis"></a>

If you do not specify a parameter group for your Valkey or Redis OSS cluster, then a default parameter group appropriate to your engine version will be used. You can't change the values of any parameters in the default parameter group. However, you can create a custom parameter group and assign it to your cluster at any time as long as the values of conditionally modifiable parameters are the same in both parameter groups. For more information, see [Creating a parameter group](parametergroups.creating.md).

**Topics**
+ [

## Valkey 7 and Redis OSS 7 parameter changes
](#ParameterGroups.Redis.7)
+ [

## Redis OSS 6 parameters
](#parametergroups.redis.6-x)
+ [

## MemoryDB node-type specific parameters
](#parametergroups.redis.nodespecific)

## Valkey 7 and Redis OSS 7 parameter changes
<a name="ParameterGroups.Redis.7"></a>

**Note**  
MemoryDB introduced [Vector search](https://docs.aws.amazon.com/memorydb/latest/devguide/vector-search.html) that includes a new immutable parameter group `default.memorydb-valkey7.search`. This parameter group is available in the MemoryDB console and when creating a new vector-search-enabled cluster using the [create-cluster](https://docs.aws.amazon.com/cli/latest/reference/memorydb/create-cluster.html) CLI command. The preview release is available in the following AWS Regions: US East (N. Virginia), US East (Ohio), US West (Oregon), Asia Pacific (Tokyo), and Europe (Ireland).

**Parameter group family:** memorydb\$1valkey7

Parameters added in Valkey 7 and Redis OSS 7 are as follows. 


|  Name  |  Details |  Description  | 
| --- | --- | --- | 
| latency-tracking |  Permitted values: `yes`, `no` Default: `no` Type: string Modifiable: Yes Changes take effect: Immediately across all nodes in the cluster. | When set to yes tracks the per command latencies and enables exporting the percentile distribution via the `INFO` latency statistics command, and cumulative latency distributions (histograms) via the `LATENCY` command.  | 
| hash-max-listpack-entries |  Permitted values: `0+` Default: `512` Type: integer Modifiable: Yes Changes take effect: Immediately across all nodes in the cluster. | The maximum number of hash entries in order for the dataset to be compressed.  | 
| hash-max-listpack-value |  Permitted values: `0+` Default: `64` Type: integer Modifiable: Yes Changes take effect: Immediately across all nodes in the cluster. | The threshold of biggest hash entries in order for the dataset to be compressed.  | 
| zset-max-listpack-entries |  Permitted values: `0+` Default: `128` Type: integer Modifiable: Yes Changes take effect: Immediately across all nodes in the cluster. | The maximum number of sorted set entries in order for the dataset to be compressed.  | 
| zset-max-listpack-value |  Permitted values: `0+` Default: `64` Type: integer Modifiable: Yes Changes take effect: Immediately across all nodes in the cluster. | The threshold of biggest sorted set entries in order for the dataset to be compressed.  | 
| search-enabled |  Permitted values: `yes, no` Default: `no` Type: string Modifiable: Yes Changes take effect: For new clusters only. Minimum engine version: 7.1  | When set to yes, it enables the Search capabilities.  | 
| search-query-timeout-ms |  Permitted values: `1 - 60,000` Default: `10,000` Type: integer Modifiable: Yes Changes take effect: Immediately across all nodes in the cluster. Minimum engine version: 7.1  | The maximum amount of time in milliseconds that a search query is allowed to run.  | 

Parameters changed in Redis OSS 7 are as follows. 


|  Name  |  Details |  Description  | 
| --- | --- | --- | 
| activerehashing |  Modifiable: `no`. In Redis OSS 7, this parameter is hidden and enabled by default. In order to disable it, you need to create a [support case](https://console.aws.amazon.com/support/home).  | Modifiable was yes.  | 

Parameters removed in Redis OSS 7 are as follows. 


|  Name  |  Details |  Description  | 
| --- | --- | --- | 
| hash-max-ziplist-entries |  Permitted values: `0+` Default: `512` Type: integer Modifiable: Yes Changes take effect: Immediately across all nodes in the cluster. | Use `listpack` instead of `ziplist` for representing small hash encoding  | 
| hash-max-ziplist-value |  Permitted values: `0+` Default: `64` Type: integer Modifiable: Yes Changes take effect: Immediately across all nodes in the cluster. | Use `listpack` instead of `ziplist` for representing small hash encoding  | 
| zset-max-ziplist-entries |  Permitted values: `0+` Default: `128` Type: integer Modifiable: Yes Changes take effect: Immediately across all nodes in the cluster. | Use `listpack` instead of `ziplist` for representing small hash encoding.  | 
| zset-max-ziplist-value |  Permitted values: `0+` Default: `64` Type: integer Modifiable: Yes Changes take effect: Immediately across all nodes in the cluster. | Use `listpack` instead of `ziplist` for representing small hash encoding.  | 

## Redis OSS 6 parameters
<a name="parametergroups.redis.6-x"></a>

**Note**  
In Redis OSS engine version 6.2, when the r6gd node family was introduced for use with [Data tiering](data-tiering.md), only `noeviction`, `volatile-lru` and `allkeys-lru` max-memory policies are supported with r6gd node types. 

**Parameter group family:** memorydb\$1redis6

Parameters added in Redis OSS 6 are as follows. 


|  Name  |  Details |  Description  | 
| --- | --- | --- | 
|  maxmemory-policy  |  Type: STRING Permitted values: volatile-lru,allkeys-lru,volatile-lfu,allkeys-lfu,volatile-random,allkeys-random,volatile-ttl,noeviction Default: noeviction  |  The eviction policy for keys when maximum memory usage is reached.For more information on using Valkey or Redis OSS as an LRU cache, see [Key eviction](https://valkey.io/topics/lru-cache).  | 
|  list-compress-depth |  Type: INTEGER Permitted values: 0- Default: 0 | Compress depth is the number of quicklist ziplist nodes from each side of the list to exclude from compression. The head and tail of the list are always uncompressed for fast push and pop operations. Settings are: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/memorydb/latest/devguide/parametergroups.redis.html) | 
|  hll-sparse-max-bytes |  Type: INTEGER Permitted values: 1-16000 Default: 3000 |  HyperLogLog sparse representation bytes limit. The limit includes the 16 byte header. When a HyperLogLog using the sparse representation crosses this limit, it is converted into the dense representation. A value greater than 16000 is not recommended, because at that point the dense representation is more memory efficient. We recommend a value of about 3000 to have the benefits of the space-efficient encoding without slowing down `PFADD` too much, which is O(N) with the sparse encoding. The value can be raised to \$110000 when CPU is not a concern, but space is, and the data set is composed of many HyperLogLogs with cardinality in the 0 - 15000 range. | 
|  lfu-log-factor |  Type: INTEGER Permitted values: 1- Default: 10 |  The log factor for incrementing key counter for LFU eviction policy. | 
|  lfu-decay-time |  Type: INTEGER Permitted values: 0- Default: 1 |  The amount of time in minutes to decrement the key counter for LFU eviction policy. | 
|  active-defrag-max-scan-fields |  Type: INTEGER Permitted values: 1-1000000 Default: 1000 |  Maximum number of set/hash/zset/list fields that will be processed from the main dictionary scan during active defragmentation. | 
|  active-defrag-threshold-upper |  Type: INTEGER Permitted values: 1-100 Default: 100 |  Maximum percentage of fragmentation at which we use maximum effort. | 
|  client-output-buffer-limit-pubsub-hard-limit |  Type: INTEGER Permitted values: 0- Default: 33554432 |  For Redis OSS publish/subscribe clients: If a client's output buffer reaches the specified number of bytes, the client will be disconnected. | 
|  client-output-buffer-limit-pubsub-soft-limit |  Type: INTEGER Permitted values: 0- Default: 8388608 |  For Redis OSS publish/subscribe clients: If a client's output buffer reaches the specified number of bytes, the client will be disconnected, but only if this condition persists for `client-output-buffer-limit-pubsub-soft-seconds.` | 
|  client-output-buffer-limit-pubsub-soft-seconds |  Type: INTEGER Permitted values: 0- Default: 60 |  For Redis OSS publish/subscribe clients: If a client's output buffer remains at `client-output-buffer-limit-pubsub-soft-limit` bytes for longer than this number of seconds, the client will be disconnected. | 
|  timeout |  Type: INTEGER Permitted values: 0,20- Default: 0 |  The number of seconds a node waits before timing out. Values are: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/memorydb/latest/devguide/parametergroups.redis.html)  | 
|  notify-keyspace-events |  Type: STRING Permitted values: NULL Default: NULL | The keyspace events for Redis OSS to notify Pub/Sub clients about. By default all notifications are disabled. | 
|  maxmemory-samples |  Type: INTEGER Permitted values: 1- Default: 3 |  For least-recently-used `(LRU)` and `time-to-live (TTL)` calculations, this parameter represents the sample size of keys to check. By default, Redis OSS chooses 3 keys and uses the one that was used least recently. | 
|  slowlog-max-len |  Type: INTEGER Permitted values: 0- Default: 128 |  The maximum length of the Redis OSS Slow Log. There is no limit to this length. Just be aware that it will consume memory. You can reclaim memory used by the slow log with `SLOWLOG RESET.` | 
|  activerehashing |  Type: STRING Permitted values: yes,no Default: yes |  The main hash table is rehashed ten times per second; each rehash operation consumes 1 millisecond of CPU time. This value is set when you create the parameter group. When assigning a new parameter group to a cluster, this value must be the same in both the old and new parameter groups. | 
|  client-output-buffer-limit-normal-hard-limit |  Type: INTEGER Permitted values: 0- Default: 0 |  If a client's output buffer reaches the specified number of bytes, the client will be disconnected. The default is zero (no hard limit). | 
|  client-output-buffer-limit-normal-soft-limit |  Type: INTEGER Permitted values: 0- Default: 0 |  If a client's output buffer reaches the specified number of bytes, the client will be disconnected, but only if this condition persists for `client-output-buffer-limit-normal-soft-seconds`. The default is zero (no soft limit). | 
|  client-output-buffer-limit-normal-soft-seconds |  Type: INTEGER Permitted values: 0- Default: 0 |  If a client's output buffer remains at `client-output-buffer-limit-normal-soft-limit` bytes for longer than this number of seconds, the client will be disconnected. The default is zero (no time limit). | 
|  tcp-keepalive |  Type: INTEGER Permitted values: 0- Default: 300 |  If this is set to a nonzero value (N), node clients are polled every N seconds to ensure that they are still connected. With the default setting of 0, no such polling occurs. | 
|  active-defrag-cycle-min |  Type: INTEGER Permitted values: 1-75 Default: 5 |  Minimal effort for defrag in CPU percentage. | 
|  stream-node-max-bytes |  Type: INTEGER Permitted values: 0- Default: 4096 |  The stream data structure is a radix tree of nodes that encode multiple items inside. Use this configuration to specify the maximum size of a single node in radix tree in Bytes. If set to 0, the size of the tree node is unlimited. | 
|  stream-node-max-entries |  Type: INTEGER Permitted values: 0- Default: 100 |  The stream data structure is a radix tree of nodes that encode multiple items inside. Use this configuration to specify the maximum number of items a single node can contain before switching to a new node when appending new stream entries. If set to 0, the number of items in the tree node is unlimited. | 
|  lazyfree-lazy-eviction |  Type: STRING Permitted values: yes,no Default: no |  Perform an asynchronous delete on evictions. | 
|  active-defrag-ignore-bytes |  Type: INTEGER Permitted values: 1048576- Default: 104857600 |  Minimum amount of fragmentation waste to start active defrag. | 
|  lazyfree-lazy-expire |  Type: STRING Permitted values: yes,no Default: no |  Perform an asynchronous delete on expired keys. | 
|  active-defrag-threshold-lower |  Type: INTEGER Permitted values: 1-100 Default: 10 |  Minimum percentage of fragmentation to start active defrag. | 
|  active-defrag-cycle-max |  Type: INTEGER Permitted values: 1-75 Default: 75 |  Maximal effort for defrag in CPU percentage. | 
|  lazyfree-lazy-server-del |  Type: STRING Permitted values: yes,no Default: no |  Performs an asynchronous delete for commands which update values. | 
|  slowlog-log-slower-than |  Type: INTEGER Permitted values: 0- Default: 10000 |  The maximum execution time, in microseconds, to exceed in order for the command to get logged by the Redis OSS `Slow Log` feature. Note that a negative number disables the slow log, while a value of zero forces the logging of every command. | 
|  hash-max-ziplist-entries |  Type: INTEGER Permitted values: 0- Default: 512 |  Determines the amount of memory used for hashes. Hashes with fewer than the specified number of entries are stored using a special encoding that saves space. | 
|  hash-max-ziplist-value |  Type: INTEGER Permitted values: 0- Default: 64 |  Determines the amount of memory used for hashes. Hashes with entries that are smaller than the specified number of bytes are stored using a special encoding that saves space. | 
|  set-max-intset-entries |  Type: INTEGER Permitted values: 0- Default: 512 |  Determines the amount of memory used for certain kinds of sets (strings that are integers in radix 10 in the range of 64 bit signed integers). Such sets with fewer than the specified number of entries are stored using a special encoding that saves space. | 
|  zset-max-ziplist-entries |  Type: INTEGER Permitted values: 0- Default: 128 |  Determines the amount of memory used for sorted sets. Sorted sets with fewer than the specified number of elements are stored using a special encoding that saves space. | 
|  zset-max-ziplist-value |  Type: INTEGER Permitted values: 0- Default: 64 |  Determines the amount of memory used for sorted sets. Sorted sets with entries that are smaller than the specified number of bytes are stored using a special encoding that saves space. | 
|  tracking-table-max-keys |  Type: INTEGER Permitted values: 1-100000000 Default: 1000000 |  To assist client-side caching, Redis OSS supports tracking which clients have accessed which keys. When the tracked key is modified, invalidation messages are sent to all clients to notify them their cached values are no longer valid. This value enables you to specify the upper bound of this table. | 
|  acllog-max-len |  Type: INTEGER Permitted values: 1-10000 Default: 128 |  The maximum number of entries in the ACL Log. | 
|  active-expire-effort |  Type: INTEGER Permitted values: 1-10 Default: 1 |  Redis OSS deletes keys that have exceeded their time to live by two mechanisms. In one, a key is accessed and is found to be expired. In the other, a periodic job samples keys and causes those that have exceeded their time to live to expire. This parameter defines the amount of effort that Redis OSS uses to expire items in the periodic job. The default value of 1 tries to avoid having more than 10 percent of expired keys still in memory. It also tries to avoid consuming more than 25 percent of total memory and to add latency to the system. You can increase this value up to 10 to increase the amount of effort spent on expiring keys. The tradeoff is higher CPU and potentially higher latency. We recommend a value of 1 unless you are seeing high memory usage and can tolerate an increase in CPU utilization. | 
|  lazyfree-lazy-user-del |  Type: STRING Permitted values: yes,no Default: no |  Specifies whether the default behavior of `DEL` command acts the same as `UNLINK`. | 
|  activedefrag |  Type: STRING Permitted values: yes,no Default: no |  Enabled active memory defragmentation. | 
|  maxclients |  Type: INTEGER Permitted values: 65000 Default: 65000 |  The maximum number of clients that can be connected at one time. Non modifiable. | 
| client-query-buffer-limit |  Type: INTEGER Permitted values: 1048576-1073741824 Default: 1073741824  |  Max size of a single client query buffer. Change takes place immediately.  | 
| proto-max-bulk-len |  Type: INTEGER Permitted values: 1048576-536870912 Default: 536870912  |  Max size of a single element request. Change takes place immediately.  | 

## MemoryDB node-type specific parameters
<a name="parametergroups.redis.nodespecific"></a>

Although most parameters have a single value, some parameters have different values depending on the node type used. The following table shows the default value for the `maxmemory` for each node type. The value of `maxmemory` is the maximum number of bytes available to you for use, data and other uses, on the node.


|  Node type  | Maxmemory  | 
| --- | --- | 
| db.r7g.large | 14037181030 | 
| db.r7g.xlarge | 28261849702 | 
| db.r7g.2xlarge | 56711183565 | 
| db.r7g.4xlarge | 113609865216 | 
| db.r7g.8xlarge | 225000375228 | 
| db.r7g.12xlarge | 341206346547 | 
| db.r7g.16xlarge | 450000750456 | 
| db.r6gd.xlarge | 28261849702 | 
| db.r6gd.2xlarge | 56711183565 | 
| db.r6gd.4xlarge | 113609865216 | 
| db.r6gd.8xlarge | 225000375228 | 
| db.r6g.large | 14037181030 | 
| db.r6g.xlarge | 28261849702 | 
| db.r6g.2xlarge | 56711183565 | 
| db.r6g.4xlarge | 113609865216 | 
| db.r6g.8xlarge | 225000375228 | 
| db.r6g.12xlarge | 341206346547 | 
| db.r6g.16xlarge | 450000750456 | 
| db.t4g.small | 1471026299 | 
| db.t4g.medium | 3317862236 | 

**Note**  
All MemoryDB instance types must be created in an Amazon Virtual Private Cloud VPC.