Maintain a large dictionary in memory for Django-Python?
In past for a similar problem I have used the idea of a dump.py . I would think that all of the other data structures would require a layer to convert objects of one kind into   python objects . However I would still think that this would depend on data size and the amount of data you are handling . Memcache and redis should have better indexing and look up when it comes to really large data sets and things like regex based lookup . So my recommendation would be 
json -- if you are serving the data over http to some other service
python file - if data structure is not too large and you need not any special kind of look ups
memcache and redis -- if the data becomes really large
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 !