The features you're asking for amount to three Redis server instances that are configured so that each Redis instance is a master that replicates to two slaves, and is also a slave of two masters.
This is not a design that the open source Redis server supports. A Redis server instance can replicate to two (or more) slaves, but a slave can receive replication from only one master.
Further, I believe you don't actually want that because it doesn't actually reduce the load on the Redis server processes. To explain: You propose sharding keys among three master Redis server processes, call them A, B, and C. Each would receive 1/3rd of the writes from Redis clients. But process B would receive its own writes and, being a slave of A and C, would also receive the writes replicated from A, and from C. In the same way, C receives its own writes, and also the writes replicated from A and B. And, of course, A receives its own writes and also the writes from B and C. On top of that, all three Redis server instances must hold in RAM the keys from all three servers. This design doesn't save on writes and doesn't save on RAM consumption. At first it sounds good, but it doesn't hold up under close inspection.
There is an architecture that will bring you very close to what you're asking for on three servers. That's a Redis Cluster where each server has two Redis server processes instead of just one. One of the processes is a master, and the other is a slave. The slave process takes replication from the master on a different server rather than the same server. You need to have enough CPU and RAM for the two processes, but this is a configuration that gets you sharding and redundancy on only three servers, and it's supported by Redis Cluster.