Files
dshackle/docs/10-caching.adoc
2023-11-23 00:08:01 +03:00

67 lines
1.4 KiB
Plaintext

== Caching
Dshackle can be configured to cache blockchain data. It can be a _hot_ in-memory cache, and optional _cold_ Redis-based
cache.
Dshackle has enough information to effectively cache data and evict outdated values. If some data has been removed from
the blockchain, for example when block was replaced with another block at the same height, then the old values are
immediately evicted from the caches.
=== In-memory cache
Dshackle keeps latest blocks in memory (by default 64 blocks)
=== Redis cache
Dshackle can optionally cache blocks and transactions in Redis cache. The values are cached up to 1 hour, but
fresh blocks and transactions are cached for shorter period.
It makes sense to reuse the same Redis cache between multiple instances of the Dshackle.
.Basic config (dshackle.yaml)
[source, yaml]
----
cache:
redis:
enabled: true
----
.Full config (dshackle.yaml)
[source, yaml]
----
cache:
redis:
enabled: true
host: 127.0.0.1
port: 6379
db: 0
password: passw0rd!
----
.Options
|===
| Name | Default Value | Description
| enabled
| false
| Set to `true` if Dshackle should use Redis for caching
| host
| 127.0.0.1
| Redis host
| port
| 6379
| Redis port
| db
| 0
| Redis database
| password
| --
| Password if Redis requires authentication. The value can be read from Environment variable, to do that
specify it as `${REDIS_PASSWORD}`, where REDIS_PASSWORD is the name of the variable
|===