从redis 3.0之后版本支持redis-cluster集群,Redis-Cluster采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接。
1、所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽。
2、节点的fail是通过集群中超过半数的节点检测失效时才生效。
3、客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可。
4、redis-cluster把所有的物理节点映射到[0-16383]slot上(不一定是平均分配),cluster 负责维护node<->slot<->value。
5、Redis集群预分好16384个桶,当需要在 Redis 集群中放置一个 key-value 时,根据 CRC16(key) mod 16384的值,决定将一个key放到哪个桶中。
该段引用:https://blog.csdn.net/z15732621582/article/details/79121213
windows下集群的安装:
1:安装redis
2:在一台windows上安装多个实例
复制C:\Program Files\Redis目录下的redis.windows-service.conf文件修改为redis.8085.conf并修改其中内容:
# 本地数据库名称 dbfilename dump-6380.rdb
# 日志文件 logfile "Logs/server_log_6380.txt"
# 日志输出 syslog-enabled yes
# 登录认证密码,三个实例可设置为一样的,推荐分别设置 requirepass 123456
注册服务
redis-server.exe --service-install redis.8085.conf --service-name redis8085
启动该服务
redis-server.exe --service-start --service-name redis6380
cmd执行命令测试登录
redis-cli.exe -h 127.0.0.1 -p 6380
删除实例服务则执行
redis-server.exe --service-uninstall --service-name redis6380
3:配置ruby相关支持
redis的集群使用 ruby脚本编写,所以系统需要有 Ruby 环境 ,下载地址 http://dl.bintray.com/oneclick/rubyinstaller/:rubyinstaller-2.3.3-x64.exe
安装时3个选项都勾选
安装Redis的Ruby驱动redis-xxxx.gem
下载地址 https://rubygems.org/pages/download, 下载后解压,当前目录切换到解压目录中,如 D:\Program Files\redis\rubygems-2.6.12 然后在命令行执行 ruby setup.rb。
然后GEM 安装 Redis :切换到redis安装目录,需要在命令行中,执行 gem install redis
安装集群脚本redis-trib
下载地址 https://raw.githubusercontent.com/antirez/redis/unstable/src/redis-trib.rb
创建Redis集群
- 复制C:\Program Files\Redis目录下的redis.windows-service.conf文件,复制多个修改位redis.8083.conf、redis.8084.conf、redis.8085.conf
- 修改里面内容如下:
- port 6380 #端口号
loglevel notice #日志的记录级别,notice是适合生产环境的
logfile "Logs/redis6380_log.txt" #指定log的保持路径,默认是创建在Redis安装目录下,如果有子目录需要手动创建,如此处的Logs目录
syslog-enabled yes #是否使用系统日志
syslog-ident redis6380 #在系统日志的标识名
appendonly yes #数据的保存为aof格式
appendfilename "appendonly.6380.aof" #数据保存文件
cluster-enabled yes #是否开启集群
cluster-config-file nodes.6380.conf
cluster-node-timeout 15000
cluster-slave-validity-factor 10
cluster-migration-barrier 1
cluster-require-full-coverage yes - 保存之后,创建服务,执行代码:
- redis-server.exe --service-install redis.8083.conf --service-name redis8083
redis-server.exe --service-install redis.8084.conf --service-name redis8084
redis-server.exe --service-install redis.8085.conf --service-name redis8085 - 执行集群操作:
- redis-trib.rb create --replicas 0 127.0.0.1:8083 127.0.0.1:8084 127.0.0.1:8085
- 检验是否真的创建成功,输入以下命令:redis-trib.rb check 127.0.0.1:8083
- 创建完成
操作集群
- 使用Redis客户端Redis-cli.exe来查看数据记录数,以及集群相关信息:
- C:/Program Files/Redis/redis-cli.exe -c -p 8083
- dbsize //查看记录总数
- cluster info //可以从客户端的查看集群的信息
参考博客:
https://www.cnblogs.com/tommy-huang/p/6240083.html