编辑
2023-05-06
环境部署
00

目录

注:需要Redis3.2+
操作步骤:
1, 找到压缩包解压位置,两个配置文件,修改下配置密码:
2,安装redis服务(如果已安装则先卸载)
3, 启动(停止)服务,并检查密码配置是否生效:
4,检查下不带密码获取value是否报错:
5, ok了就启动带密码:
6, 给每个节点分配单独的对应配置,在redis安装目录下创建对应的node700x文件夹,把conf文件放里面。
7, 每一个node都配置好后,就可以启动集群服务了:
8, 启动节点成功后,就可以创建集群:
9, 启动完毕后,可以进入集群:
10, 查看集群的状态:
11, 查看集群节点信息:
注:需要Redis3.2+

C:\shixun\Redis-x64-5.0.14.1

操作步骤:

1, 找到压缩包解压位置,两个配置文件,修改下配置密码:

shell
requirepass 123456

image.png

2,安装redis服务(如果已安装则先卸载)

A. 安装指令:

shell
redis-server.exe --service-install redis.windows.conf

image.png

B. 卸载指令:

shell
redis-server.exe --service-uninstall

image.png

C. 确保已卸载,可以查询一下:

shell
sc query redis

a. 若存在Redis则如下:

image.png

b. 如果服务已卸载,这个命令将返回:失败 1060: 指定的服务未安装

image.png

3, 启动(停止)服务,并检查密码配置是否生效:

shell
redis-server.exe --service-start/stop

image.png

4,检查下不带密码获取value是否报错:

shell
redis-cli.exe get key

image.png

5, ok了就启动带密码:

shell
redis-cli.exe -a 123456

A. 这时候会有Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.

B. 能够以更安全的登陆方式,先进入控制台,然后输入认证密码:

shell
redis-cli Auth 123456

image.png

image.png

6, 给每个节点分配单独的对应配置,在redis安装目录下创建对应的node700x文件夹,把conf文件放里面。

image.png

配置文件丢里面,统一命名,或者名称一样保持不同做区分也行(但是后续命令指定时需要保持相同)

image.png

image.png

shell
# 配置内容举个例子: bind 127.0.0.1 port 7002 cluster-enabled yes cluster-config-file nodes-7002.conf cluster-node-timeout 5000 appendonly yes appendfilename "appendonly-7002.aof" dbfilename "dump-7002.rdb" logfile "7002.log" dir C:\shixun\Redis-x64-5.0.14.1\data\node7002

image.png

a. 这个dir 配置项用于指定保存数据库文件的目录。您可以将其设置为绝对路径或相对路径:

image.png

b. 对应的data目录要存在

image.png

7, 每一个node都配置好后,就可以启动集群服务了:

shell
# 配置内容举个例子: redis-server.exe .\cluster-node-7001\redis.conf redis-server.exe .\cluster-node-7002\redis.conf redis-server.exe .\cluster-node-7003\redis.conf redis-server.exe .\cluster-node-7004\redis.conf redis-server.exe .\cluster-node-7005\redis.conf redis-server.exe .\cluster-node-7006\redis.conf

注: 如果你是之前所说的非统一命名的配置文件,则需要将名称相对应

shell
# 配置内容举个例子: redis-server.exe .\cluster-node-7001\redis-7001.conf redis-server.exe .\cluster-node-7002\redis-7002.conf redis-server.exe .\cluster-node-7003\redis-7003.conf redis-server.exe .\cluster-node-7004\redis-7004.conf redis-server.exe .\cluster-node-7005\redis-7005.conf redis-server.exe .\cluster-node-7006\redis-7006.conf

8, 启动节点成功后,就可以创建集群:

shell
# 配置内容举个例子: redis-cli.exe --cluster create 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006 --cluster-replicas 1

a. 创建时会有提示,确认即可:yes

image.png

b. 查看各个node的打印信息,耐心等待全部ok

image.png

c. 上图表示的含义就是:Redis 集群已经成功启动并运行

三个主节点(M)分别分配了槽位范围,每个节点负责处理一部分槽位: - 127.0.0.1:7001 负责槽位 0 到 5460 - 127.0.0.1:7002 负责槽位 5461 到 10922 - 127.0.0.1:7003 负责槽位 10923 到 16383 三个从节点(S)分别复制一个主节点,形成主从复制关系: - 127.0.0.1:7004 复制 127.0.0.1:7001 - 127.0.0.1:7005 复制 127.0.0.1:7002 - 127.0.0.1:7006 复制 127.0.0.1:7003

d. 输出信息中的 [OK] All nodes agree about slots configuration. 表示所有节点对槽位配置达成一致。

e. 输出信息中的 [OK] All 16384 slots covered. 表示 16384 个槽位都已分配,集群槽位配置完整。所以,根据这些信息,我们可以得出结论:Redis 集群已成功启动并运行。

9, 启动完毕后,可以进入集群:

shell
redis-cli.exe -c -p 7001

10, 查看集群的状态:

shell
CLUSTER INFO

image.png

11, 查看集群节点信息:

shell
CLUSTER NODES

image.png

当然也会有失败的情况:

  1. 部分节点未加入集群时,可以手动添加:CLUSTER MEET 127.0.0.1 7006

  2. 如果想重启集群,就需要逐一关闭节点:redis-cli -h 127.0.0.1 -p 7001 -a 123456 shutdown

    1). 然后等待集群恢复,启动所有节点后集群可能需要一段时间来自动恢复,这个过程,集群可能会进行节点之间的数据同步、哈希槽位的重新分配

    2). 最后可以重启完毕后检查集群状态:

shell
redis-cli -h 127.0.0.1 -p 7001 -a 123456 cluster info
  1. 日志中出现报错信息:
shell
[9448] 06 May 14:15:28.656 # fork operation failed [9448] 06 May 14:15:28.656 # Background AOF rewrite terminated by signal 1 [9448] 06 May 14:15:28.769 * Background append only file rewriting started by pid 20232 [20232] 06 May 14:15:28.817 # *** FATAL CONFIG FILE ERROR *** [20232] 06 May 14:15:28.817 # Reading the configuration file, at line 0 [20232] 06 May 14:15:28.817 # >>> '(null)' [20232] 06 May 14:15:28.817 # replicaof directive not allowed in cluster mode [9448] 06 May 14:15:28.881 # fork operation failed [9448] 06 May 14:15:28.881 # Background AOF rewrite terminated by signal 1

a. 错误日志显示的问题可能与操作系统资源限制有关

b. 解决办法:以管理员身份运行 Redis:确保以管理员权限运行 Redis 进程,以便能够访问必要的系统资源。检查操作系统限制:确保操作系统允许 Redis 使用足够的文件描述符和进程。这些限制可能因操作系统和系统配置而异。检查 AOF 文件和 RDB 文件的权限和路径:确保指定的 AOF 文件(appendonly-7006.aof)和 RDB 文件(dump-7006.rdb)的路径正确,Redis 进程具有访问这些文件的权限。

c. 其实appendonly-7006.aofdump-7006.rdb 这两个文件是 Redis 服务器在运行时自动生成的。它们分别用于 AOF(Append Only File)持久化和 RDB(Redis DataBase)持久化。

d. AOF 持久化:当 Redis 配置为使用 AOF 持久化时,它会将所有的写操作(例如 SET、HSET 等)追加到 AOF 文件中。当 Redis 服务器重启时,它会从 AOF 文件中读取操作并重放它们以重建数据库状态。AOF 文件名由配置文件中的 appendfilename 指令指定。

e. RDB 持久化:RDB 持久化是 Redis 将整个数据库的快照保存到磁盘的过程。这是通过将数据库保存到一个名为 RDB 文件的二进制文件中来完成的。RDB 文件名由配置文件中的 dbfilename 指令指定。

f. 当 Redis 服务器启动并开始接收命令时,如果启用了 AOF 或 RDB 持久化,它会在指定的目录中创建这些文件(由 dir 指令设置)。如果这些文件不存在,Redis 会自动创建它们。如果这些文件已经存在,Redis 会在启动时加载它们,并在运行过程中不断更新这些文件以保持数据的持久化。

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Golovin

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!