The short answer is that flower won't know which task results to look for in the backend.  Since redis databases can be shared with other processes, flower can't guarantee that a key that looks a certain way will contain a celery result that it "should" be monitoring.  The persistent flag lets flower keep track of the task results it "should" be monitoring by saving a copy of any tasks that it sees going through the broker queue and, thus, keep track of relevant results.
Hi dear ladies and guys,
so i've been struggling today to find out how to make flower use the redis backend to get the historical tasks. I've read that Flower has the --persistent flag but this creates its own file.
Why does it need this file? Why doesn't it just pull the records from redis?
I don't get it. ( I have RabbitMQ as broker and Redis as backend configured in the Celery() constructor)
Why to use redis as backend for celery if flower takes snapshots anyway?