First of all I'll suggest you to go through this post.
In that stackoverflow answer, you can see answer of your first point "Memory Management" along with many other detailed information.
Rest for your second point, I would like to tell that you can check default configuration file of redis from where you can manage different available behaviours.
This snippet is mentioned in redis configuration file:
# MAXMEMORY POLICY: how Redis will select what to remove when maxmemory
# is reached. You can select among five behaviors:
#
# volatile-lru -> remove the key with an expire set using an LRU algorithm
# allkeys-lru -> remove any key according to the LRU algorithm
# volatile-random -> remove a random key with an expire set
# allkeys-random -> remove a random key, any key
# volatile-ttl -> remove the key with the nearest expire time (minor TTL)
# noeviction -> don't expire at all, just return an error on write operations
Hope that it will help you. Rest if I'm missing something then please update me with that.