C:\shixun\Redis-x64-5.0.14.1
shellrequirepass 123456
A. 安装指令:
shellredis-server.exe --service-install redis.windows.conf
B. 卸载指令:
shellredis-server.exe --service-uninstall
C. 确保已卸载,可以查询一下:
shellsc query redis
a. 若存在Redis则如下:
b. 如果服务已卸载,这个命令将返回:失败 1060: 指定的服务未安装
shellredis-server.exe --service-start/stop
shellredis-cli.exe get key
shellredis-cli.exe -a 123456
A. 这时候会有Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
B. 能够以更安全的登陆方式,先进入控制台,然后输入认证密码:
shellredis-cli Auth 123456
配置文件丢里面,统一命名,或者名称一样保持不同做区分也行(但是后续命令指定时需要保持相同)
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
a. 这个dir 配置项用于指定保存数据库文件的目录。您可以将其设置为绝对路径或相对路径:
b. 对应的data目录要存在
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
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
b. 查看各个node的打印信息,耐心等待全部ok
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 集群已成功启动并运行。
shellredis-cli.exe -c -p 7001
shellCLUSTER INFO
shellCLUSTER NODES
当然也会有失败的情况:
部分节点未加入集群时,可以手动添加:CLUSTER MEET 127.0.0.1 7006
如果想重启集群,就需要逐一关闭节点:redis-cli -h 127.0.0.1 -p 7001 -a 123456 shutdown
1). 然后等待集群恢复,启动所有节点后集群可能需要一段时间来自动恢复,这个过程,集群可能会进行节点之间的数据同步、哈希槽位的重新分配
2). 最后可以重启完毕后检查集群状态:
shellredis-cli -h 127.0.0.1 -p 7001 -a 123456 cluster info
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.aof
和dump-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 会在启动时加载它们,并在运行过程中不断更新这些文件以保持数据的持久化。
本文作者:Golovin
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!