Dont use compressed air, it only pushes the dust furthur into the components.Use a vacuum cleaner with a small attachment.
Never found a vacuum cleaner that works.
Been doing this since the 90's and compressed (dry) air is the only real solution.
Make sure the air is dry (If at work we have an air drier built in, when doing it at home I empty the tank via it's sump to check that it is dry).
Do not use to much pressure, just enough to move the dust.
Make sure the fans can not move by stopping them with a pen, pencil, chopstick or similar (or fingers for those that are easily accessible) as them spinning to fast can damage them.
Then just blow the dust away.
If there is oil or grease on the board, fans or heatsink use contact cleaner to remove after you have finished blowing the excess away with the compressor.
Once it is 100% dry you can give it another blow with the compressor.
Air blowers also work to an extent but you do not have the fine control or pressure needed to get into pci/ram slots that you have with a compressor.
Most vacuums simply do not have the power needed to get rid of all the dust.