Redis has "commands" that mutate the various data types it can store. Why? Redis is primarily a cache If you look at something like https://redis.io/commands#list, you will see that types that Redis stores and supports are fully mutable, atomically, within the data store's memory. 

This does not make alot of sense given that Redis exists as primarily a cache to accelerate applications who have a database separate from Redis and only use Redis as a place to read values back from. 

What am I missing here? Why have mutability on values directly on Redis when that does not fit a caching model?
Redis is a Key-Value (KV) store, and KV stores generally are well suited for cache however provide additional functionality.

KV stores can provide synchronisation between a variety of stateless front ends which is what this commands provide.