petergoldstein / dalli

High performance memcached client for Ruby
MIT License
3.1k stars 450 forks source link

Add host_to_name_map option to Dalli::Protocol::ConnectionManager #1005

Open philister opened 3 months ago

philister commented 3 months ago

New config-parameter: host_to_name_map a hash mapping "host:port" to a name. Useful for providing more descriptive names or tuning the ring-continuum e.g. client1 { 'localhost:11211' => 'memcached1', 'mem2.cach.ed' => 'memcached2'} client2 { 'localhost:11211' => 'memcached2', 'mem1.cach.ed' => 'memcached1'}

For a consistent calculation of which key can be found on which server, the config must also be the same on all clients. Previously, this was only possible if all memcached servers were accessible at the same address on all clients. However, you may want or be able to reach the memcache servers from different clients only via different addresses (local vs public vs docker vs dns, etc)