Ketama
libketama-style consistent hashing in Go
Install / Use
/learn @mncaudill/KetamaREADME
===================================== ketama.go libketama-style consistent hashing in Go
Author: Nolan Caudill (nolan@nolancaudill.com) Date: 2011-06-04
This is a small library to do libketama-style consistent hashing.
A common pattern in a caching cluster (eg, memcache) is to take the hash of the key modded by the number of cache servers to determine which node to cache to. This provides a distribution as even as your hashing algorithm but whenever a server is added or removed, all your keys have to rehash.
With consistent hashing, in the event of the removal of a cache node, all keys that were hashing to one node to (in theory) evenly distribute to the other cache nodes. The addition of a cache node works in a similar manner in that all nodes will evenly give up a portion of their cache keys to the new node.
This is a first pass at this and things seems to work at first glance but consider this alpha.
=========== USAGE
ketama_test.go provides a working example of how to use this library.
Related Skills
node-connect
349.7kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.7kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
349.7kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
349.7kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
