class Dalli::ElastiCache

Dalli::Elasticache provides an interface for providing a configuration endpoint for a memcached cluster on ElasticCache and retrieving the list of addresses (hostname and port) for the individual nodes of that cluster.

This allows the caller to pass that server list to Dalli, which then distributes cached items consistently over the nodes.

Constants

VERSION

Attributes

endpoint[R]
options[R]

Public Class Methods

new(config_endpoint, dalli_options = {}) click to toggle source

Creates a new Dalli::ElasticCache instance.

config_endpoint - a String containing the host and (optionally) port of the configuration endpoint for the cluster. If not specified the port will default to 11211. The host must be either a DNS name or an IPv4 address. IPv6 addresses are not handled at this time. dalli_options - a set of options passed to the Dalli::Client that is returned by the client method. Otherwise unused.

# File lib/dalli/elasticache.rb, line 36
def initialize(config_endpoint, dalli_options = {})
  @endpoint = Dalli::Elasticache::AutoDiscovery::Endpoint.new(config_endpoint)
  @options = dalli_options
end

Public Instance Methods

client() click to toggle source

Dalli::Client configured to connect to the cluster’s nodes

# File lib/dalli/elasticache.rb, line 42
def client
  Dalli::Client.new(servers, options)
end
engine_version() click to toggle source

The cache engine version of the cluster

Returns a string

# File lib/dalli/elasticache.rb, line 56
def engine_version
  endpoint.engine_version
end
refresh() click to toggle source

Clear all cached data from the cluster endpoint

# File lib/dalli/elasticache.rb, line 67
def refresh
  config_endpoint = "#{endpoint.host}:#{endpoint.port}"
  @endpoint = Dalli::Elasticache::AutoDiscovery::Endpoint.new(config_endpoint)

  self
end
servers() click to toggle source

List of cluster server nodes with ip addresses and ports Always use host name instead of private elasticache IPs as internal IPs can change after a node is rebooted

# File lib/dalli/elasticache.rb, line 62
def servers
  endpoint.config.nodes.map(&:to_s)
end
version() click to toggle source

The number of times the cluster configuration has been changed

Returns an integer

# File lib/dalli/elasticache.rb, line 49
def version
  endpoint.config.version
end