I used to work in retail (in a relatively small (not very small really) town), at a service station adjoined with a post office.

I had some nice customers, and I had some shitty ones. The worse ones I remember was the old man who kept asking how my sex life was going (smile and say good, first time he asked me, my mind went blank, and I just reverted to autopilot, which was to smile and nod), the aboriginal guy who came in and started swearing at me about the price of chicken breast and everything else, calling me and the business pieces of shit and the like. I just told him that 'x' was the price, I wasn't taking any shit from him (for reference, I was about 65kg and around 178cm then, had a bit of muscle on me, whereas he was maybe 190+, and a lot of muscles), in the end he paid for two, and didn't take his change. I've had people tell me the exact price of the things I'm getting for them (normally cigs), which pisses me off. I've had people ask for ridiculously complex orders and been rude and etc, however, there are the ones who remember your name, remember who you are, willing to have a conversation with you. And my bosses were good too, which made it better to work there. I used to work 5 days a week 10-11 hours, and it was alright pay for me at the time. Wouldn't do it again unless I had to though.

Only piece of advice I can give you is to never show any anger in front of the customer. Let off steam in the back or if no-one is around.