补充redis 哨兵模式使用文档 (#5202)

* 补充redis 哨兵模式使用文档

* Update docs and translate

Co-authored-by: 何泽宏 <hzh@addcn.com>
This commit is contained in:
宣言就是Siam 2022-11-15 17:04:33 +08:00 committed by GitHub
parent c7882d0627
commit 972b9d0a9a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 176 additions and 23 deletions

View File

@ -46,6 +46,12 @@ return [
```
`publish`完整配置文件使用命令
```shell
php bin/hyperf.php vendor:publish hyperf/redis
```
## 使用
`hyperf/redis` 实现了 `ext-redis` 代理和连接池,用户可以直接通过依赖注入容器注入 `\Hyperf\Redis\Redis` 来使用 Redis 客户端,实际获得的是 `\Redis` 的一个代理对象。
@ -143,10 +149,55 @@ $redis = $container->get(RedisFactory::class)->get('foo');
$result = $redis->keys('*');
```
## 哨兵模式
开启哨兵模式可以在`.env`或`redis.php`配置文件中修改如下
多个哨兵节点使用`;`分割
```
REDIS_HOST=
REDIS_AUTH=Redis实例密码
REDIS_PORT=
REDIS_DB=
REDIS_SENTINEL_ENABLE=true
REDIS_SENTINEL_PASSWORD=Redis哨兵密码
REDIS_SENTINEL_NODE=192.168.89.129:26381;192.168.89.129:26380;
```
```
return [
'default' => [
'host' => env('REDIS_HOST', 'localhost'),
'auth' => env('REDIS_AUTH', null),
'port' => (int) env('REDIS_PORT', 6379),
'db' => (int) env('REDIS_DB', 0),
'timeout' => 30.0,
'reserved' => null,
'retry_interval' => 0,
'sentinel' => [
'enable' => (bool) env('REDIS_SENTINEL_ENABLE', false),
'master_name' => env('REDIS_MASTER_NAME', 'mymaster'),
'nodes' => explode(';', env('REDIS_SENTINEL_NODE', '')),
'persistent' => false,
'read_timeout' => 30.0,
'auth' => env('REDIS_SENTINEL_PASSWORD', ''),
],
'pool' => [
'min_connections' => 1,
'max_connections' => 10,
'connect_timeout' => 10.0,
'wait_timeout' => 3.0,
'heartbeat' => -1,
'max_idle_time' => (float) env('REDIS_MAX_IDLE_TIME', 60),
],
],
];
```
## 集群模式
### 使用 `name`
配置 `cluster`,修改修改 `redis.ini`,也可以修改 `Dockerfile` 如下
```

View File

@ -102,7 +102,7 @@
## 文檔生成
- [hyperf/swagger](https://github.com/hyperf/swagger) Hyperf 官方提供的 Swagger 文檔自動生成組件 (beta)
- [tangwei/swagger](https://github.com/tw2066/api-docs) 一個基於PHP類型(DTO)自動生成swagger文檔組件啟動自動掃描、自動生成路由(UI)、註解驗證
- [tangwei/swagger](https://github.com/tw2066/api-docs) 一個基於 PHP 類型(DTO)自動生成 swagger 文檔組件,啟動自動掃描、自動生成路由(UI)、註解驗證
## Graphql

View File

@ -46,6 +46,12 @@ return [
```
`publish`完整配置文件使用命令
```shell
php bin/hyperf.php vendor:publish hyperf/redis
```
## 使用
`hyperf/redis` 實現了 `ext-redis` 代理和連接池,用户可以直接通過依賴注入容器注入 `\Hyperf\Redis\Redis` 來使用 Redis 客户端,實際獲得的是 `\Redis` 的一個代理對象。
@ -143,10 +149,55 @@ $redis = $container->get(RedisFactory::class)->get('foo');
$result = $redis->keys('*');
```
## 哨兵模式
開啟哨兵模式可以在`.env`或`redis.php`配置文件中修改如下
多個哨兵節點使用`;`分割
```
REDIS_HOST=
REDIS_AUTH=Redis實例密碼
REDIS_PORT=
REDIS_DB=
REDIS_SENTINEL_ENABLE=true
REDIS_SENTINEL_PASSWORD=Redis哨兵密碼
REDIS_SENTINEL_NODE=192.168.89.129:26381;192.168.89.129:26380;
```
```
return [
'default' => [
'host' => env('REDIS_HOST', 'localhost'),
'auth' => env('REDIS_AUTH', null),
'port' => (int) env('REDIS_PORT', 6379),
'db' => (int) env('REDIS_DB', 0),
'timeout' => 30.0,
'reserved' => null,
'retry_interval' => 0,
'sentinel' => [
'enable' => (bool) env('REDIS_SENTINEL_ENABLE', false),
'master_name' => env('REDIS_MASTER_NAME', 'mymaster'),
'nodes' => explode(';', env('REDIS_SENTINEL_NODE', '')),
'persistent' => false,
'read_timeout' => 30.0,
'auth' => env('REDIS_SENTINEL_PASSWORD', ''),
],
'pool' => [
'min_connections' => 1,
'max_connections' => 10,
'connect_timeout' => 10.0,
'wait_timeout' => 3.0,
'heartbeat' => -1,
'max_idle_time' => (float) env('REDIS_MAX_IDLE_TIME', 60),
],
],
];
```
## 集羣模式
### 使用 `name`
配置 `cluster`,修改修改 `redis.ini`,也可以修改 `Dockerfile` 如下
```

View File

@ -2,14 +2,14 @@
## 版本生命週期
| 版本 | 狀態 | 積極支持截止時間 | 安全維護截止時間 | 發佈或預計發佈時間 |
| ---- |--------|------------|------------|------------|
| 3.0 | 研發中 (RC1已發佈) | 2023-06-20 | 2023-12-31 | 2022-08-30~2022-09-30 |
| 2.2 | 積極支持中 | 2022-06-20 | 2022-12-31 | 2021-07-19 |
| 2.1 | 停止維護 | 2021-06-30 | 2021-12-31 | 2020-12-28 |
| 2.0 | 停止維護 | 2020-12-28 | 2021-06-30 | 2020-06-22 |
| 1.1 | 停止維護 | 2020-06-23 | 2020-12-31 | 2019-10-08 |
| 1.0 | 停止維護 | 2019-10-08 | 2019-12-31 | 2019-06-20 |
| 版本 | 狀態 | 積極支持截止時間 | 安全維護截止時間 | 發佈或預計發佈時間 |
| ---- |----------------|------------|------------|---------------|
| 3.0 | 研發中 (RC13 已發佈) | 2023-06-30 | 2023-12-31 | 大概 2022-12-31 |
| 2.2 | 安全維護 | 2022-06-20 | 2023-06-30 | 2021-07-19 |
| 2.1 | 停止維護 | 2021-06-30 | 2021-12-31 | 2020-12-28 |
| 2.0 | 停止維護 | 2020-12-28 | 2021-06-30 | 2020-06-22 |
| 1.1 | 停止維護 | 2020-06-23 | 2020-12-31 | 2019-10-08 |
| 1.0 | 停止維護 | 2019-10-08 | 2019-12-31 | 2019-06-20 |
* 積極支持將包含常規迭代週期的 BUG 修復、安全問題修復、功能迭代和功能新增;
* 安全維護僅包含安全問題的修復;

View File

@ -162,7 +162,7 @@ class UserController
`@Controller``@AutoController` 都提供了 `prefix``server` 兩個參數。
`prefix` 表示該 `Controller` 下的所有方法路由的前綴,默認為類名的小寫,如 `UserController``prefix` 默認為 `user`,如類內某一方法的 `path``index`,則最終路由為 `/user/index`
需要注意的是 `prefix` 並非一直有效,當類內的方法的 `path``/` 開頭時,則表明路徑從 `URI` 頭部開始定義,也就意味着會忽略 `prefix` 的值。
需要注意的是 `prefix` 並非一直有效,當類內的方法的 `path``/` 開頭時,則表明路徑從 `URI` 頭部開始定義,也就意味着會忽略 `prefix` 的值,同時如果沒有設置 `prefix` 屬性,那麼控制器類命名空間中 `\\Controller\\` 之後的部分會以蛇形命名法(SnakeCase)被用作路由的前綴
`server` 表示該路由是定義在哪個 `Server` 之上的,由於 `Hyperf` 支持同時啟動多個 `Server`,也就意味着有可能會同時存在多個 `HTTP Server`,則在定義路由是可以通過 `server` 參數來進行區分這個路由是為了哪個 `Server` 定義的,默認為 `http`

View File

@ -102,7 +102,7 @@
## 文件生成
- [hyperf/swagger](https://github.com/hyperf/swagger) Hyperf 官方提供的 Swagger 文件自動生成元件 (beta)
- [tangwei/swagger](https://github.com/tw2066/api-docs) 一個基於PHP型別(DTO)自動生成swagger文件元件啟動自動掃描、自動生成路由(UI)、註解驗證
- [tangwei/swagger](https://github.com/tw2066/api-docs) 一個基於 PHP 型別(DTO)自動生成 swagger 文件元件,啟動自動掃描、自動生成路由(UI)、註解驗證
## Graphql

View File

@ -46,6 +46,12 @@ return [
```
`publish`完整配置檔案使用命令
```shell
php bin/hyperf.php vendor:publish hyperf/redis
```
## 使用
`hyperf/redis` 實現了 `ext-redis` 代理和連線池,使用者可以直接通過依賴注入容器注入 `\Hyperf\Redis\Redis` 來使用 Redis 客戶端,實際獲得的是 `\Redis` 的一個代理物件。
@ -143,10 +149,55 @@ $redis = $container->get(RedisFactory::class)->get('foo');
$result = $redis->keys('*');
```
## 哨兵模式
開啟哨兵模式可以在`.env`或`redis.php`配置檔案中修改如下
多個哨兵節點使用`;`分割
```
REDIS_HOST=
REDIS_AUTH=Redis例項密碼
REDIS_PORT=
REDIS_DB=
REDIS_SENTINEL_ENABLE=true
REDIS_SENTINEL_PASSWORD=Redis哨兵密碼
REDIS_SENTINEL_NODE=192.168.89.129:26381;192.168.89.129:26380;
```
```
return [
'default' => [
'host' => env('REDIS_HOST', 'localhost'),
'auth' => env('REDIS_AUTH', null),
'port' => (int) env('REDIS_PORT', 6379),
'db' => (int) env('REDIS_DB', 0),
'timeout' => 30.0,
'reserved' => null,
'retry_interval' => 0,
'sentinel' => [
'enable' => (bool) env('REDIS_SENTINEL_ENABLE', false),
'master_name' => env('REDIS_MASTER_NAME', 'mymaster'),
'nodes' => explode(';', env('REDIS_SENTINEL_NODE', '')),
'persistent' => false,
'read_timeout' => 30.0,
'auth' => env('REDIS_SENTINEL_PASSWORD', ''),
],
'pool' => [
'min_connections' => 1,
'max_connections' => 10,
'connect_timeout' => 10.0,
'wait_timeout' => 3.0,
'heartbeat' => -1,
'max_idle_time' => (float) env('REDIS_MAX_IDLE_TIME', 60),
],
],
];
```
## 叢集模式
### 使用 `name`
配置 `cluster`,修改修改 `redis.ini`,也可以修改 `Dockerfile` 如下
```

View File

@ -2,14 +2,14 @@
## 版本生命週期
| 版本 | 狀態 | 積極支援截止時間 | 安全維護截止時間 | 釋出或預計釋出時間 |
| ---- |--------|------------|------------|------------|
| 3.0 | 研發中 (RC1已釋出) | 2023-06-20 | 2023-12-31 | 2022-08-30~2022-09-30 |
| 2.2 | 積極支援中 | 2022-06-20 | 2022-12-31 | 2021-07-19 |
| 2.1 | 停止維護 | 2021-06-30 | 2021-12-31 | 2020-12-28 |
| 2.0 | 停止維護 | 2020-12-28 | 2021-06-30 | 2020-06-22 |
| 1.1 | 停止維護 | 2020-06-23 | 2020-12-31 | 2019-10-08 |
| 1.0 | 停止維護 | 2019-10-08 | 2019-12-31 | 2019-06-20 |
| 版本 | 狀態 | 積極支援截止時間 | 安全維護截止時間 | 釋出或預計釋出時間 |
| ---- |----------------|------------|------------|---------------|
| 3.0 | 研發中 (RC13 已釋出) | 2023-06-30 | 2023-12-31 | 大概 2022-12-31 |
| 2.2 | 安全維護 | 2022-06-20 | 2023-06-30 | 2021-07-19 |
| 2.1 | 停止維護 | 2021-06-30 | 2021-12-31 | 2020-12-28 |
| 2.0 | 停止維護 | 2020-12-28 | 2021-06-30 | 2020-06-22 |
| 1.1 | 停止維護 | 2020-06-23 | 2020-12-31 | 2019-10-08 |
| 1.0 | 停止維護 | 2019-10-08 | 2019-12-31 | 2019-06-20 |
* 積極支援將包含常規迭代週期的 BUG 修復、安全問題修復、功能迭代和功能新增;
* 安全維護僅包含安全問題的修復;

View File

@ -162,7 +162,7 @@ class UserController
`@Controller``@AutoController` 都提供了 `prefix``server` 兩個引數。
`prefix` 表示該 `Controller` 下的所有方法路由的字首,預設為類名的小寫,如 `UserController``prefix` 預設為 `user`,如類內某一方法的 `path``index`,則最終路由為 `/user/index`
需要注意的是 `prefix` 並非一直有效,當類內的方法的 `path``/` 開頭時,則表明路徑從 `URI` 頭部開始定義,也就意味著會忽略 `prefix` 的值。
需要注意的是 `prefix` 並非一直有效,當類內的方法的 `path``/` 開頭時,則表明路徑從 `URI` 頭部開始定義,也就意味著會忽略 `prefix` 的值,同時如果沒有設定 `prefix` 屬性,那麼控制器類名稱空間中 `\\Controller\\` 之後的部分會以蛇形命名法(SnakeCase)被用作路由的字首
`server` 表示該路由是定義在哪個 `Server` 之上的,由於 `Hyperf` 支援同時啟動多個 `Server`,也就意味著有可能會同時存在多個 `HTTP Server`,則在定義路由是可以通過 `server` 引數來進行區分這個路由是為了哪個 `Server` 定義的,預設為 `http`