We present a new algorithm for a minimal perfect hash function (MPHF) and a new dynamic cache friendly dictionary. We describe the procedures and analyse them with respect to space and time. For our analysis we assume full randomness of hash functions which are used by the algorithms. Finally we give experimental results and discuss them. We show that it is possible to construct a minimal perfect hash function which stores n keys and consumes 0.93n words. It takes O(n) expected time to build such a MPHF. To evaluate our MPHF only 2 memory cells have to be read and only 2 hash functions have to be evaluated. Our dynamic dictionary consumes (1+epsilon)n space for an arbitrary epsilon > 0. For a \lkp{} operation only 2 hash functions have to be evaluated and 2d memory cells have to be inspected, which are located in 2 contiguous blocks for each d >= 1+3.26 ln(1/epsilon). Further we proof that for each d >= 90.1 ln(epsilon) the expected time for inserting a new key is constant. Finally we show how to adapt our dictionary to use strings as keys in a cache friendly manner.