@@ -86,11 +86,6 @@ public function connect( $read_timeout = null ) {
86
86
$ servers = $ this ->build_cluster_connection_array ();
87
87
$ parameters ['cluster ' ] = $ servers ;
88
88
$ options ['cluster ' ] = 'redis ' ;
89
- if ( defined ('WP_REDIS_SCHEME ' ) ) {
90
- $ options ['parameters ' ] = [
91
- 'scheme ' => WP_REDIS_SCHEME ,
92
- ];
93
- }
94
89
}
95
90
96
91
if ( strcasecmp ( 'unix ' , $ parameters ['scheme ' ] ) === 0 ) {
@@ -211,13 +206,30 @@ protected function build_cluster_connection_array() {
211
206
$ cluster = array_values ( WP_REDIS_CLUSTER );
212
207
213
208
foreach ( $ cluster as $ key => $ server ) {
214
- $ connection_string = parse_url ( $ server );
209
+ $ components = parse_url ( $ server );
210
+
211
+ if ( ! empty ( $ components ['scheme ' ] ) ) {
212
+ $ scheme = $ components ['scheme ' ];
213
+ } elseif ( defined ( 'WP_REDIS_SCHEME ' ) ) {
214
+ $ scheme = WP_REDIS_SCHEME ;
215
+ } else {
216
+ $ scheme = null ;
217
+ }
215
218
216
- $ cluster [ $ key ] = sprintf (
217
- "%s:%s " ,
218
- $ connection_string ['host ' ],
219
- $ connection_string ['port ' ]
220
- );
219
+ if ( isset ( $ scheme ) ) {
220
+ $ cluster [ $ key ] = sprintf (
221
+ '%s://%s:%d ' ,
222
+ $ scheme ,
223
+ $ components ['host ' ],
224
+ $ components ['port ' ]
225
+ );
226
+ } else {
227
+ $ cluster [ $ key ] = sprintf (
228
+ '%s:%d ' ,
229
+ $ components ['host ' ],
230
+ $ components ['port ' ]
231
+ );
232
+ }
221
233
}
222
234
223
235
return $ cluster ;
0 commit comments