We generalize Cuckoo Hashing to d-ary Cuckoo Hashing and show how this yields a simple hash table data structure that stores n elements in (1 + ε)n memory cells, for any constant ε > 0. Assuming uniform hashing, accessing or deleting table entries takes at most d=O (ln (1/ε)) probes and the expected amortized insertion time is constant. This is the first dictionary that has worst case constant access time and expected constant update time, works with (1 + ε)n space, and supports satellite information. Experiments indicate that d = 4 probes suffice for ε ≈ 0.03. We also describe variants of the data structure that allow the use of hash functions that can be evaluated in constant time.