Method: Dalli::Client#initialize
- Defined in:
- lib/dalli/client.rb
#initialize(servers = nil, options = {}) ⇒ Client
Dalli::Client is the main class which developers will use to interact with the memcached server. Usage:
Dalli::Client.new(['localhost:11211:10',
'cache-2.example.com:11211:5',
'192.168.0.1:22122:5',
'/var/run/memcached/socket'],
failover: true, expires_in: 300)
servers is an Array of “host:port:weight” where weight allows you to distribute cache unevenly. Both weight and port are optional. If you pass in nil, Dalli will use the MEMCACHE_SERVERS
environment variable or default to ‘localhost:11211’ if it is not present. Dalli also supports the ability to connect to Memcached on localhost through a UNIX socket. To use this functionality, use a full pathname (beginning with a slash character ‘/’) in place of the “host:port” pair in the server configuration.
Options:
-
:namespace - prepend each key with this value to provide simple namespacing.
-
:failover - if a server is down, look for and store values on another server in the ring. Default: true.
-
:threadsafe - ensure that only one thread is actively using a socket at a time. Default: true.
-
:expires_in - default TTL in seconds if you do not pass TTL as a parameter to an individual operation, defaults
to 0 or forever.
-
:compress - if true Dalli will compress values larger than compression_min_size bytes before sending them
to memcached. Default: true.
-
:compression_min_size - the minimum size (in bytes) for which Dalli will compress values sent to Memcached.
Defaults to 4K.
-
:serializer - defaults to Marshal
-
:compressor - defaults to Dalli::Compressor, a Zlib-based implementation
-
:cache_nils - defaults to false, if true Dalli will not treat cached nil values as ‘not found’ for
#fetch operations.
-
:digest_class - defaults to Digest::MD5, allows you to pass in an object that responds to the hexdigest method,
useful for injecting a FIPS compliant hash object.
-
:protocol - one of either :binary or :meta, defaulting to :binary. This sets the protocol that Dalli uses
to communicate with memcached.
49 50 51 52 53 54 |
# File 'lib/dalli/client.rb', line 49 def initialize(servers = nil, = {}) @normalized_servers = ::Dalli::ServersArgNormalizer.normalize_servers(servers) @options = () @key_manager = ::Dalli::KeyManager.new(@options) @ring = nil end |