# Redis based subscription store

One of the problems that we tried to address was that of subscription state not syncing when one of the nodes restarted. The subscription state used to build up on other nodes and the restarted node was unable to catch up to the other nodes. We finally achieved this using an external store(redis) for maintaining a common subscription state for all the nodes.

You can use the redis based external subscription store using the following configs as mentioned below:

### Default Reg trie

You have to configure the default\_reg\_view to vmq\_reg\_redis\_trie to start using redis store as the subscription store.

```
default_reg_view = vmq_reg_redis_trie
```

### Lua directory

By default, we use a set of lua scripts that are loaded into `/etc/lua` inside the `_build/default/rel/vernemq` when a release is created using `make rel`. This value can be overridden if you wish to use a different set of scripts.

```
redis_lua_dir = ./etc/lua
```

### Redis database

Redis databases are numbered from 0 to 15 and, by default, you connect to database 0 when you connect to your Redis instance. However, you can change the database you’re using with the select command after you connect. This config specifies which redis\_database to use. By default, you always connect to database 0.

```
redis_database = 0
```

### Redis sentinel endpoints

The address of redis sentinel endpoints.

```
redis_sentinel_endpoints = [{"vernemq-redis-1", 26379}, {"vernemq-redis-2", 26379}, {"vernemq-redis-3", 26379}]
```


---

# Agent Instructions: 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:

```
GET https://courier-gojek.gitbook.io/vernemq/configuring-vernemq/routing.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
