Let me answer you one by one.
How to retrieve your public and private key?
Inside your geth directory, you will be able to see the keystore file.
You can use this node module (https://www.npmjs.com/package/keythereum) to retrieve the private key using the password you used while creating the account.
When I am checking this address in etherscan it shows 0 balance but in my ethereum geth its shows have balance
I assume you have created your own private ethereum network and hence you wont be able to see the balance of the account in etherscan. Etherscan are either connected to the mainnet or testnet works (rinkeby,ropsten and kovan). I am not sure on which etherscan you have checked.
Same applies for mist as well but you can connect mist or metamask to the geth rpc address and view the balance of your account accordingly