[{"id":"840f0737-df1d-47ae-bb0a-359b01fe0608","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"d5d9cdef-8854-4505-89be-a2bbc3cb4482","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"3dc3dd55-35b0-4d23-bf62-47bc3650e4ee","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"80d84fbc-d0f8-4e4a-947f-e3e4de9b49b2","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"9152b7ca-0186-4fe3-a26f-5a05f322db07","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]}]
默认情况下,当您尝试安装 Server 时,它会立即弹出如下错误提示。
原因是未启用多服务器模式。
请按照远程部署Server 启用多服务器模式并远程安装服务器。
请检查是否安装了 ASP.NET Core Runtime 6.0 。
请检查防火墙是否打开或Wyn 架构及端口说明中列出的端口是否打开。
请检查Wyn.conf中的相关配置是否正确。
在多服务器模式下,由于Redis无法连接,Server可能无法启动。
您可以在 C:\Program Files\Wyn\logs\server\logxxx.txt (Windows 系统)或 /opt/Wyn/logs/server/logxxx.txt 中(Linux 系统)看到错误消息。
原因是Redis绑定IP是localhost或者127.0.0.1。
您可以按照以下步骤来解决它。
在 Redis.conf 中注释绑定或修改绑定到特定 IP 而不是 localhost 或 12.7.0.0.1。
重启Redis。
type=info
提示
在Linux中,Redis配置位于/etc/redis。
在Windows中,Redis配置位于Redis安装目录中。
对于 Redis 版本 < 6.0,请在连接字符串中添加名为“ Password ”的属性。该属性的值是密码。
Server=localhost:6379,Password=xxxx,Expire=0,Db=0,ThrowOnFailure=true,Timeout=3000
否则,请在连接字符串中添加名为“ Username ”的属性。该属性的值是用冒号分隔的用户名和密码。
Server=localhost:6379,Username=${username}:${password},Expire=0,Db=0,ThrowOnFailure=true,Timeout=3000
7.0 之后,除了Server、UserName、Password和Db之外,我们将不支持 NewLife 中的其他配置,但支持 StackExchange Redis 连接字符串中的所有部分。
这确保了从 6.1 升级的客户无需更改 Redis 配置字符串,多集群环境仍然可以工作。
type=warning
强烈建议用户使用新的 Gces.Redis 风格的连接字符串,并丢弃原来 NewLife 风格中的旧连接字符串。
同时,GcRedis 包也有自己的“ PoolSize ”的配置,用于配置 GcRedis 池。
配置连接串 | 默认 | 说明 |
---|---|---|
abortConnect={bool} |
| 如果为 true,在没有可用服务器时不会创建连接。 |
allowAdmin={bool} |
| 指定是否允许执行 Redis 的管理员命令。 如果设置为 true,客户端可以执行所有 Redis 命令,包括危险的命令。 |
channelPrefix={string} |
| 所有发布/订阅操作的可选通道前缀。 |
checkCertificateRevocation={bool} |
| 布尔值,指定在身份验证过程中是否检查证书注销列表。 |
connectRetry={int} |
| 初始期间重复连接尝试的次数。 |
connectTimeout={int} |
| 连接操作超时(毫秒)。 |
configCheckSeconds={int} |
| 检查配置的时间(秒)。 |
defaultDatabase={int} |
| 默认数据库索引。 |
keepAlive={int} |
| 发送消息以保持套接字处于活动状态的时间(秒)(默认为 60 秒)。 |
name={string} |
| redis 内连接的标识。 |
user={string} |
| Redis 服务器的用户(与 Redis 6 及更高版本上的 ACL 一起使用)。 |
password={string} |
| Redis 用户的密码。 |
resolveDns={bool} |
| 用于指定是否在连接 Redis 服务器时解析 DNS 主机名。 设置为 true,Gces.Redis 会在连接 Redis 服务器时自动解析 DNS 主机名,以获取 Redis 服务器的 IP 地址。 设置为 false,则 Gces.Redis 会直接使用 DNS 主机名来连接 Redis 服务器。 通常情况下,可以将 resolveDns 设置为 true,让 Gces.Redis 自动解析 DNS 主机名,以便灵活地处理 Redis 服务器 IP 地址变化的情况。 但是,在某些情况下,可能需要将 resolveDns 设置为 false,例如: 如果你已经知道 Redis 服务器的 IP 地址,并希望直接使用 IP 地址来连接 Redis 服务器。 如果你的 DNS 服务器不可靠或出现故障,可能会导致 DNS 解析失败,此时可以将 resolveDns 设置为 false,避免 DNS 解析失败而无法连接 Redis 服务器。 |
serviceName={string} |
| 用于指定 Redis 哨兵服务器的服务名称。 当使用哨兵模式连接 Redis 服务器时,需要指定 Redis 哨兵服务器的服务名称,以便 Gces.Redis 可以正确地连接到 Sentinel 服务器,并获取 Redis 服务器的主从节点信息。 如果使用哨兵模式的集群,请确保serviceName 的值必须与哨兵服务器中的服务名称一致,否则连接将会失败。 |
ssl={bool} |
| 指定使用 SSL 加密。 |
sslHost={string} |
| 在服务器认证中强制执行特定的 SSL 主机身份。 |
sslProtocols={enum} |
| 使用加密连接时支持的 Ssl/Tls 版本。使用“|” 提供多个值。 |
syncTimeout={int} |
| 允许同步操作的时间(毫秒)。 |
asyncTimeout={int} |
| 允许异步操作的时间(毫秒)。 |
tiebreaker={string} |
| 是 Redis 哨兵模式下的一个配置项,用于指定在主从切换的情况下,如何选择新的主服务器。 当 Redis 主服务器发生故障时,Redis 哨兵会自动将从服务器提升为新的主服务器,但是如果有多个从服务器同时请求成为主服务器,那么 Redis 哨兵需要选择一个从服务器作为新的主服务器,这时就需要使用 tiebreaker 配置项来指定选择规则。 如果使用redis哨兵集群,强烈推荐设置一个可靠的实例作为tiebreaker的值。 |
PoolSize | null || number (4<PoolSize<200) | 是否使用Redis连接池并设置连接池大小。 |
请使用以下示例设置用户名和密码。
Server=localhost:6379,Username=${username},Password=${password},Expire=0,Db=0,ThrowOnFailure=true,Timeout=3000
Redis 集群连接字符串示例:
server=${redis0}:${port0},${redis1}:${port1};Username=${username},Password=${password} // NewLife style
${redis0}:${port0},${redis1}:${port1},user=${username},password=${password} // Gces.Redis style