Hi Shari, I'm not sure I understand all of your question - so please come back with more info if it seems like I'm missing something here - but a 301 is really only meant to be used when you've moved a page on your site, or an entire site. It automatically sends visitors and engines to the new content, wherever it's meant to be and lets the engines know that this is a permanent move.
With that said, if you've moved something and want to initiate a search engine friendly redirect then 301 is the one to use.
You'll want to implement the redirect based on the code used in your site - there's a good bit of info for how to implement in just about any programming language
here. And some further sample code for working a 301 in your .htaccess file
here.
We implemented a 301 on the original domain for this site when we bought the current URL - and because it was done correctly the new domain 'inherited' page rank from the old - had we done it wrong we could have been banned by Google for our efforts.
But what you're asking about here, I think - is if you should create 301s for non-www pages on your site - and while I'm not an expert in this particular issue from what I've read and understand setting 301s for content that already exists on your site (on a www for example) *can* lead to a search engine indexing both separately and penalizing you for duplicate content as well as forcing the two 'versions' to share 'status' - kind of undermining any good
SEO intentions you might have had. So unless you have an actual legitemate reason for implementing a 301 I wouldn't advise it.
If you have an article to point to though I'd be curious to read if there is another, divergent opinion on this one.