Maintain a large dictionary in memory for Django-Python?
Memcached, though a great product, is trumped by Redis in my book.  It offers lots of things that memcached doesn't, like persistence.  
It also offers more complex data structures like hashses.  What is your particular data dump?  How big is it, and how large / what type of values?
I have a big key-value pair dump, that I need to lookup for my django-Python webapp.
So, I have following options:

Store it as json dump and load it as a python dict.
Store it in a dump.py and import the dict from it.
Use some targeted systems for this problem: [ Are these really meant for this usecase ? ]

Mem-cache
Redis
Any other option ?


Which from above is the right way to go ?
How will you compare memcache and redis ?
Update:

My dictionary is about 5 MB in size and will grow over time.
Using Redis/Memcache adds an overhead of hitting a socket every-time, so would dump.py will be better since it would take time to load it to memory but after that it would only do memory lookups.
My dictionary needs to be updated every day, considering that dump.py will be problem, since we have to restart the django-server to reload where as I guess it would reflect on the fly in redis and memcache.
One uses a system like redis only when you have large amount of data and you have to lookup very frequently, in that case socket gives a overhead so, how do we achieve the advantage ?

Please share your experiences on this !