Configuration
Scredis uses the Typesafe Config Library. The list of parameters you can tweak can be seen in reference.conf below.
Reference
scredis {
redis {
# Redis server address
host = localhost
# Redis server port
port = 6379
# Redis server password (optional)
# password = foobar
# Database to be selected when connection is established
database = 0
# Name of this connection (optional). Setting this parameter will have the client send a
# CLIENT SETNAME (available since 2.6.9) command just after having established the connection
# name =
}
io {
# Maximum amount of time allowed to establish a connection to the Redis server
connect-timeout = 2 seconds
# Maximum amount of time allowed to receive a batch of responses from the Redis server. A batch
# of responses can contain as little as one response and as many as thousands of responses.
receive-timeout = 5 seconds
# Maximum amount of bytes to be sent to the Redis server at once. This controls the level of
# request pipelining
max-write-batch-size = 50000
# Provides a hint to the underlying operating system of the size to allocate to the TCP send
# buffer, in bytes
tcp-send-buffer-size-hint = 5000000
# Provides a hint to the underlying operating system of the size to allocate to the TCP receive
# buffer, in bytes
tcp-receive-buffer-size-hint = 500000
akka {
# Name of the actor system created by the Redis.scala instance.
actor-system-name = "scredis"
# Path to the definition of the io dispatcher used by the IOActor
io-dispatcher-path = "scredis.io.akka.io-dispatcher"
# Path to the definition of the listener dispatcher used by the ListenerActor
listener-dispatcher-path = "scredis.io.akka.listener-dispatcher"
# Path to the definition of the decoder dispatcher used by the DecoderActors
decoder-dispatcher-path = "scredis.io.akka.decoder-dispatcher"
io-dispatcher {
executor = "thread-pool-executor"
type = PinnedDispatcher
}
listener-dispatcher {
executor = "thread-pool-executor"
type = PinnedDispatcher
}
decoder-dispatcher {
mailbox-type = "akka.dispatch.BoundedMailbox"
mailbox-capacity = 1024
throughput = 1024
}
}
}
# Defines global parameters, i.e. applied to all Clients together.
# These parameters can only be modified in application.conf and will apply to all clients, no
# matter how they were initialized or configured.
global {
# Maximum number of overall concurrently processing requests. This parameter directly
# influences the memory consumption of scredis. Reducing it too much will impact performance
# negatively.
max-concurrent-requests = 30000
# Configures the buffer pool used to encode requests.
# The pool reduces garbage collection overhead.
encode-buffer-pool {
# Maximum capacity of the buffer pool, i.e. maximum number of buffers to pool
pool-max-capacity = 30500
# Maximum size of a buffer, in bytes. If more than 'buffer-max-size' bytes are required to
# encode a request, the allocated buffer will not be pooled and thus garbage collected.
buffer-max-size = 5000
}
}
}
Example Setup: Multiple Environments
Config: application.conf
local.scredis {
redis {
password = "BUppsdAS^"
}
}
development.scredis {
redis {
host = "dev.host.org"
password = "LKU8tb6asd"
}
}
production.scredis {
redis {
host = "host.org"
password = "OANDs8asd7o"
}
}
# These parameters can only be set globally
scredis.global {
}
Initialization
import scredis._
val redisLocal = Redis("application.conf", "local.scredis")
val redisDevelopment = Redis("application.conf", "development.scredis")
val redisProduction = Redis("application.conf", "production.scredis")
The source code for this page can be found here.