you can tell the ogre resourcemanager in advance how much memory you want it to use with ResourceManager::setMemoryBudget(), and it will automatically unload resources based on their priority.
Here's what the docs says about this method;
"If, when asked to load a new resource, the manager believes it will exceed this memory budget, it will temporarily unload a resource to make room for the new one. This unloading is not permanent and the Resource is not destroyed; it simply needs to be reloaded when next used."
This should suit your needs just fine if you set an appropriate budget. In order for this to be 100% fool-proof though, you will need to make sure all of your game's assets are loaded by ogre's resource system - including sound effects and other non-Ogre resources. Read here
for info on creating custom resource types.