diff --git a/v1/backends/redis/goredis.go b/v1/backends/redis/goredis.go
index <HASH>..<HASH> 100644
--- a/v1/backends/redis/goredis.go
+++ b/v1/backends/redis/goredis.go
@@ -3,10 +3,12 @@ package redis
 import (
 	"bytes"
 	"encoding/json"
-	"github.com/go-redis/redis"
+	"strings"
 	"sync"
 	"time"
 
+	"github.com/go-redis/redis"
+
 	"github.com/RichardKnop/machinery/v1/backends/iface"
 	"github.com/RichardKnop/machinery/v1/common"
 	"github.com/RichardKnop/machinery/v1/config"
@@ -33,10 +35,19 @@ func NewGR(cnf *config.Config, addrs []string, db int) iface.Backend {
 	b := &BackendGR{
 		Backend: common.NewBackend(cnf),
 	}
+	parts := strings.Split(addrs[0], "@")
+	if len(parts) == 2 {
+		// with passwrod
+		b.password = parts[0]
+		addrs[0] = parts[1]
+	}
+
 	ropt := &redis.UniversalOptions{
-		Addrs: addrs,
-		DB:    db,
+		Addrs:    addrs,
+		DB:       db,
+		Password: b.password,
 	}
+
 	b.rclient = redis.NewUniversalClient(ropt)
 	return b
 }
Feat: Support redis cluster with password