mirror of
https://gitee.com/hyperf/hyperf.git
synced 2024-11-29 18:27:44 +08:00
补充redis 哨兵模式使用文档 (#5202)
* 补充redis 哨兵模式使用文档 * Update docs and translate Co-authored-by: 何泽宏 <hzh@addcn.com>
This commit is contained in:
parent
c7882d0627
commit
972b9d0a9a
@ -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` 如下
|
||||
|
||||
```
|
||||
|
@ -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
|
||||
|
||||
|
@ -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` 如下
|
||||
|
||||
```
|
||||
|
@ -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 修復、安全問題修復、功能迭代和功能新增;
|
||||
* 安全維護僅包含安全問題的修復;
|
||||
|
@ -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`。
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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` 如下
|
||||
|
||||
```
|
||||
|
@ -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 修復、安全問題修復、功能迭代和功能新增;
|
||||
* 安全維護僅包含安全問題的修復;
|
||||
|
@ -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`。
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user