Tip:
Keep the same common first 6-8 characters or so, a text string with both upper and lower case in, aswell as 2+ numbers, and a punctuation symbol and use this everywhere as the "stem" of your password. Then for each service add 1-3 extra characters corresponding to that service to create a unique but memorable password.
So for example the common part, or stem, could be: $a1F0rdU
which will satisfy most password requirements.
Then add extra characters to every service you sign up for, for example, you could add:
fa9 for Facebook, giving $a1FordUfa9
tw9 for Twitter, giving $a1FordUtw9
di9 for Disqus, giving $a1FordUdi9
As the text strings for each service are unique, if there is a data breach on just one of the services you are signed up for exposing your password there, it's unlikely to be copied across to your other services.
No methods are perfect(!)
but combining a complex common start phrase to a memorable varying ending
like this should be pretty resilient under most situations.