As one chap suggested, use public and private addresses, 3 of them is best - the main volume of leaks of active email addresses to junk spammers is through customer databases on ill-secured company sites, or those of companies that sell your details on (legally or otherwise) or 'pass to a select group of our trusted partners..'. With a lot of online billing for household stuff etc you can't realistically keep yourselff off those, so split the email into 2 or 3 channels based on trust level, eg.;
Personal email for real friends and family who won't sell your email on / store it in a company database (obviously it'll be in your friend's contact list with apple or google or wherever, nothing you can do about that) - this one would be pretty much permanent.
Bills, household, warranty etc and other necessities email for companies that you must or want to deal with, but who may well sell your email address on, maybe change whenever you move house, or each year perhaps.
A junk, entirely disposable one for everything else
Gmail is good for filtering as others say but obviously they'll read your email and all that in return for providing the email service (it's not free...).
When any of them start getting cluttered, say the junk one - create a new junk email account, forward the old junk account to the new one (gmail is good at forwarding too, have it forward & delete so you don't get duplicates) and start giving out the new address, after a month or three, archive it to a big file you can search/read on your computer (eg HouseholdEmail2017.txt or the like, if you want) and delete the old one, or leave it there as a permanent archive.
Gmail is quite good at switching between email accounts, and most clients handle multiple emails well so shouldn't be a pain to have the three rather than just one - the only slight gotcha is with an email client handling multipole addresses, there is a risk of accidentally replying to a household email from your personal email, but not a disaster.