The denomination you propose (Continuous wavelet transform, Discrete wavelet transform, Redundant wavelet transform) might be not precise enough. Yet here are the major differences.
Continuous wavelet transform: per se, they are a pure mathematical tool. You can use any wavelet you wish. There exists discretizations, and they could be very redundant (roughly $10-100\times$ the original signal per dimension). You mostly use it on 1D signals due to the redundancy, but it is sometimes used in 2D and 3D with limited scales. It is uses when one looks as fine details of the signals: fractal aspects, measures of regularity, precise onset or rupture detection in the signal's shape (continuity, changes in derivatives). One can just observe (analysis) or detect on 2D scalograms, or select and inverse transform, for instance for adaptive filtering.
Discrete wavelet transform: one only have a limited number of wavelets available. Often used in orthogonal or biorthogonal fashion, when critical sampling or orthogonality is important: compression, statistical analysis, or when memory or computation is too expensive. It may induce wavelet-related artifacts with low-amplitude signals. Requires some technical skills to be used in detection.
Redunant wavelet transform: a mix between the two above. Limited choice in the wavelet, yet intermediate redundancy (roughly $1,5-10\times$ per dimension) and more important some invariance: translation, rotation, shear invariance, that is useful for detection, and often more robust to noises. Often used in restoration (deblurring, deconvolution, denoising), feature analysis.