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, options = {})
  @normalized_servers = ::Dalli::ServersArgNormalizer.normalize_servers(servers)
  @options = normalize_options(options)
  @key_manager = ::Dalli::KeyManager.new(@options)
  @ring = nil
end