Bicache is a sharded hybrid MFU/MRU, TTL optional, general purpose cache for Go. Pure MRU (LRU eviction) caches are great because they're fast and incredibly simple; items that are used often generally remain in the cache. One downside is that large, sequential scan where the number of misses exceeds the MRU cache size causes highly used (and perhaps the most useful) data to be evicted in favor of recent data. A MFU cache makes the distinction of item value based on access frequency rather than recency. This means that valuable keys are insulated from large scans of potentially less valuable data.