Ну так Вы же их (данные) явно и удаляете. У Вас что в коде producer'а, что в коде consumer'а, в функции
init()
идет вызов
client.FlushDB()
.
Подозреваю, Вы добавили этот вызов в producer чтобы обеспечить "чистоту эксперимента". А когда переносили код в consumer просто забыли убрать. В результате, когда у Вас запускается consumer, он подключается, вычищает всю БД, а потом пытается уже что-то из неё вычитать, и, естественно, читать уже нечего.