Na verdade, é sensato associar Redis e MongoDB:eles são bons jogadores de equipe. Você encontrará mais informações aqui:
MongoDB com redis
Um ponto crítico é o nível de resiliência que você precisa. Tanto o Redis quanto o MongoDB podem ser configurados para atingir um nível aceitável de resiliência, e essas considerações devem ser discutidas em tempo de design. Além disso, isso pode restringir as opções de implantação:se você quiser replicação mestre/escravo para Redis e MongoDB, precisará de pelo menos 4 caixas (o Redis e o MongoDB não devem ser implantados na mesma máquina).
Agora, pode ser um pouco mais simples manter o Redis para enfileiramento, pub/sub, etc... e armazenar os dados do usuário apenas no MongoDB. A justificativa é que você não precisa projetar caminhos de acesso a dados semelhantes (a parte difícil deste trabalho) para duas lojas com paradigmas diferentes. Além disso, o MongoDB possui escalabilidade horizontal embutida (conjuntos de réplicas, auto-sharding, etc...), enquanto o Redis possui apenas escalabilidade do tipo "faça você mesmo".
Em relação à segunda pergunta, escrever para ambas as lojas seria a maneira mais fácil de fazê-lo. Não há recurso interno para replicar a atividade do Redis para o MongoDB. Projetar um daemon ouvindo uma fila do Redis (onde a atividade seria postada) e escrever no MongoDB não é tão difícil.