notice
This is documentation for Rasa Documentation v2.x, which is no longer actively maintained.
For up-to-date documentation, see the latest version (3.x).
Lock Stores
Rasa uses a ticket lock mechanism to ensure that incoming messages for a given conversation ID are processed in the right order, and locks conversations while messages are actively processed. This means multiple Rasa servers can be run in parallel as replicated services, and clients do not necessarily need to address the same node when sending messages for a given conversation ID.
InMemoryLockStore (default)
Description
InMemoryLockStore
is the default lock store. It maintains conversation locks within a single process.note
This lock store should not be used when multiple Rasa servers are run parallel.
Configuration
To use the
InMemoryTrackerStore
no configuration is needed.
RedisLockStore
Description
RedisLockStore
maintains conversation locks using Redis as a persistence layer. This is the recommended lock store for running a replicated set of Rasa servers.
Configuration
To set up Rasa with Redis the following steps are required:
Start your Redis instance
Add required configuration to your
endpoints.yml
lock_store:type: "redis"url: <url of the redis instance, e.g. localhost>port: <port of your redis instance, usually 6379>password: <password used for authentication>db: <number of your database within redis, e.g. 0>key_prefix: <alphanumeric value to prepend to lock store keys>To start the Rasa Core server using your Redis backend, add the
--endpoints
flag, e.g.:
rasa run -m models --endpoints endpoints.yml
Parameters
url
(default:localhost
): The url of your redis instanceport
(default:6379
): The port which redis is running ondb
(default:1
): The number of your redis databasekey_prefix
(default:None
): The prefix to prepend to lock store keys. Must be alphanumericpassword
(default:None
): Password used for authentication (None
equals no authentication)use_ssl
(default:False
): Whether or not the communication is encryptedsocket_timeout
(default:10
): Time in seconds after which an error is raised if Redis doesn't answer
New in 2.1
The key_prefix
parameter was added.