@@ -27,12 +27,22 @@ class PageCache implements ConfigOptionsListInterface
27
27
const INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_DATABASE = 'page-cache-redis-db ' ;
28
28
const INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_PORT = 'page-cache-redis-port ' ;
29
29
const INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_COMPRESS_DATA = 'page-cache-redis-compress-data ' ;
30
+ const INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_SENTINEL_MASTER = 'page-cache-redis-sentinel-master ' ;
31
+ const INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_SENTINEL_MASTER_VERIFY = 'page-cache-redis-sentinel-master-verify ' ;
32
+ const INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_SENTINEL_LOAD_FROM_SLAVES = 'page-cache-redis-sentinel-load-from-slaves ' ;
30
33
31
34
const CONFIG_PATH_PAGE_CACHE_BACKEND = 'cache/frontend/page_cache/backend ' ;
32
35
const CONFIG_PATH_PAGE_CACHE_BACKEND_SERVER = 'cache/frontend/page_cache/backend_options/server ' ;
33
36
const CONFIG_PATH_PAGE_CACHE_BACKEND_DATABASE = 'cache/frontend/page_cache/backend_options/database ' ;
34
37
const CONFIG_PATH_PAGE_CACHE_BACKEND_PORT = 'cache/frontend/page_cache/backend_options/port ' ;
35
- const CONFIG_PATH_PAGE_CACHE_BACKEND_COMPRESS_DATA = 'cache/frontend/page_cache/backend_options/compress_data ' ;
38
+ const CONFIG_PATH_PAGE_CACHE_BACKEND_COMPRESS_DATA =
39
+ 'cache/frontend/page_cache/backend_options/compress_data ' ;
40
+ const CONFIG_PATH_PAGE_CACHE_BACKEND_REDIS_SENTINEL_MASTER =
41
+ 'cache/frontend/page_cache/backend_options/sentinel_master ' ;
42
+ const CONFIG_PATH_PAGE_CACHE_BACKEND_REDIS_SENTINEL_MASTER_VERIFY =
43
+ 'cache/frontend/page_cache/backend_options/sentinel_master_verify ' ;
44
+ const CONFIG_PATH_PAGE_CACHE_BACKEND_REDIS_SENTINEL_LOAD_FROM_SLAVES =
45
+ 'cache/frontend/page_cache/backend_options/load_from_slaves ' ;
36
46
37
47
/**
38
48
* @var array
@@ -41,7 +51,10 @@ class PageCache implements ConfigOptionsListInterface
41
51
self ::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_SERVER => '127.0.0.1 ' ,
42
52
self ::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_DATABASE => '1 ' ,
43
53
self ::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_PORT => '6379 ' ,
44
- self ::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_COMPRESS_DATA => '0 '
54
+ self ::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_COMPRESS_DATA => '0 ' ,
55
+ self ::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_SENTINEL_MASTER => null ,
56
+ self ::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_SENTINEL_MASTER_VERIFY => null ,
57
+ self ::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_SENTINEL_LOAD_FROM_SLAVES => null ,
45
58
];
46
59
47
60
/**
@@ -58,7 +71,13 @@ class PageCache implements ConfigOptionsListInterface
58
71
self ::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_SERVER => self ::CONFIG_PATH_PAGE_CACHE_BACKEND_SERVER ,
59
72
self ::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_DATABASE => self ::CONFIG_PATH_PAGE_CACHE_BACKEND_DATABASE ,
60
73
self ::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_PORT => self ::CONFIG_PATH_PAGE_CACHE_BACKEND_PORT ,
61
- self ::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_COMPRESS_DATA => self ::CONFIG_PATH_PAGE_CACHE_BACKEND_COMPRESS_DATA
74
+ self ::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_COMPRESS_DATA => self ::CONFIG_PATH_PAGE_CACHE_BACKEND_COMPRESS_DATA ,
75
+ self ::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_SENTINEL_MASTER =>
76
+ self ::CONFIG_PATH_PAGE_CACHE_BACKEND_REDIS_SENTINEL_MASTER ,
77
+ self ::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_SENTINEL_MASTER_VERIFY =>
78
+ self ::CONFIG_PATH_PAGE_CACHE_BACKEND_REDIS_SENTINEL_MASTER_VERIFY ,
79
+ self ::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_SENTINEL_LOAD_FROM_SLAVES =>
80
+ self ::CONFIG_PATH_PAGE_CACHE_BACKEND_REDIS_SENTINEL_LOAD_FROM_SLAVES ,
62
81
];
63
82
64
83
/**
@@ -112,7 +131,26 @@ public function getOptions()
112
131
TextConfigOption::FRONTEND_WIZARD_TEXT ,
113
132
self ::CONFIG_PATH_PAGE_CACHE_BACKEND_COMPRESS_DATA ,
114
133
'Set to 1 to compress the full page cache (use 0 to disable) '
115
- )
134
+ ),
135
+ new TextConfigOption (
136
+ self ::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_SENTINEL_MASTER ,
137
+ TextConfigOption::FRONTEND_WIZARD_TEXT ,
138
+ self ::CONFIG_PATH_PAGE_CACHE_BACKEND_REDIS_SENTINEL_MASTER ,
139
+ 'Redis sentinel master '
140
+ ),
141
+ new TextConfigOption (
142
+ self ::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_SENTINEL_MASTER_VERIFY ,
143
+ TextConfigOption::FRONTEND_WIZARD_TEXT ,
144
+ self ::CONFIG_PATH_PAGE_CACHE_BACKEND_REDIS_SENTINEL_MASTER_VERIFY ,
145
+ 'Verify connected server is actually master '
146
+ ),
147
+ new TextConfigOption (
148
+ self ::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_SENTINEL_LOAD_FROM_SLAVES ,
149
+ TextConfigOption::FRONTEND_WIZARD_TEXT ,
150
+ self ::CONFIG_PATH_PAGE_CACHE_BACKEND_REDIS_SENTINEL_LOAD_FROM_SLAVES ,
151
+ 'Using the value \'1 \' indicates to only load from slaves ' .
152
+ 'and \'2 \' to include the master in the random read slave selection '
153
+ ),
116
154
];
117
155
}
118
156
@@ -202,7 +240,22 @@ private function validateRedisConfig(array $options, DeploymentConfig $deploymen
202
240
$ this ->getDefaultConfigValue (self ::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_DATABASE )
203
241
);
204
242
205
- return $ this ->redisValidator ->isValidConnection ($ config );
243
+ $ config ['sentinel_master ' ] = isset ($ options [self ::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_SENTINEL_MASTER ])
244
+ ? $ options [self ::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_SENTINEL_MASTER ]
245
+ : $ deploymentConfig ->get (
246
+ self ::CONFIG_PATH_PAGE_CACHE_BACKEND_REDIS_SENTINEL_MASTER ,
247
+ null
248
+ );
249
+
250
+ $ config ['sentinel_master_verify ' ] =
251
+ isset ($ options [self ::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_SENTINEL_MASTER_VERIFY ])
252
+ ? $ options [self ::INPUT_KEY_PAGE_CACHE_BACKEND_REDIS_SENTINEL_MASTER_VERIFY ]
253
+ : $ deploymentConfig ->get (
254
+ self ::CONFIG_PATH_PAGE_CACHE_BACKEND_REDIS_SENTINEL_MASTER_VERIFY ,
255
+ null
256
+ );
257
+
258
+ return $ this ->redisValidator ->isValidConnection (array_filter ($ config ));
206
259
}
207
260
208
261
/**
0 commit comments