Redis does a lot more than just store keys and values. Functionally speaking Redis Pub/Sub and Kafka are interchangable up to a certain level of throughput.
They really serve very different use cases. Redis pub/sub consumers only receive messages while connected, whereas Kafka consumers can pick up where they left off. Event ordering, back pressure, etc.
There are many use cases Redis pub/sub can't serve beyond just scalability.
There are many use cases Redis pub/sub can't serve beyond just scalability.