Good way to make a SQL based activity feed faster
You said redis? Everything is better with redis.
Caching is one of the best ideas in software development, no mather if you use Materialized Views you should also consider trying to cache those, believe me your users will notice the difference.
Need a way to improve performance on my website's SQL based Activity Feed.  We are using Django on Heroku.
Right now we are using actstream, which is a Django App that implements an activity feed using Generic Foreign Keys in the Django ORM.  Basically, every action has generic foreign keys to its actor and to any objects that it might be acting on, like this:
Action:
  (Clay - actor) wrote a (comment - action object) on (Andrew's review of Starbucks - target)
As we've scaled, its become way too slow, which is understandable because it relies on big, expensive SQL joins.
I see at least two options: 

Put a Redis layer on top of the SQL database and get activity feeds from there.  
Try to circumvent the Django ORM and do all the queries in raw SQL, which I understand can improve performance.

Any one have thoughts on either of these two, or other ideas, I'd love to hear them.