code: func (r *Cache) Evict(ns, key uint64) bool {
  	r.mu.RLock()
  	defer r.mu.RUnlock()
  	if r.closed {
  		return false
  	}
  
  	hash := murmur32(ns, key, 0xf00)
  	for {
  		h, b := r.getBucket(hash)
  		done, _, n := b.get(r, h, hash, ns, key, true)
  		if done {
  			if n != nil {
  				if r.cacher != nil {
  					r.cacher.Evict(n)
  				}
  				n.unref()
  				return true
  			}
  
  			break
  		}
  	}
  
  	return false
  }
docs: // Evict evicts 'cache node' with the given namespace and key. This will
  // simply call Cacher.Evict.
  //
  // Evict return true is such 'cache node' exist.