windows10专业版环境下搭建redis集群

搭建 Redis集群,三个主节点,三个从节点,多主节点为了分布集群,从节点是为了高可用性。(记录自己搭建Redis集群遇到的问题)

  1. 下载redis

地址:https://github.com/MicrosoftArchive/redis/releases

在这里插入图片描述
此次案例中使用的版本为3.0.503 Source code可以一起下载,下文会用到。
2. 安装redis
此默认端口为6379,复制6份,分别命令redis6380 redis6381 redis6382 redis6383 redis6384 redis6379

解压Redis-x64-3.0.503.zip,并复制,如下图
在这里插入图片描述
3. 修改每台redis.windows.conf,修改里面的端口号,以及集群的配置

port 6380

cluster-enabled yes

cluster-config-file nodes-6380.conf

cluster-node-timeout 15000

appendonly yes
在这里插入图片描述
修改Redis的默认配置
设置Redis的最大占用内存
Redis设置最大占用内存,打开redis配置文件,找到如下段落,设置maxmemory参数,maxmemory是bytes字节类型,注意转换。修改如下所示:

maxmemory 2147483648
如果不设置maxmemory或者设置为0,64位系统不限制内存,32位系统最多使用3GB内存。

修改数据默认存放位置
这里自定义一个文件夹,用来存放Redis数据

# Note that you must specify a directory here, not a file name.**
dir D:\MyRedisSwap
设置LRU算法删除数据
设置了maxmemory的选项,redis内存使用达到上限。可以通过设置LRU算法来删除部分key,释放空间。默认是按照过期时间的,如果set时候没有加上过期时间就会导致数据写满maxmemory。

LRU是Least Recently Used 近期最少使用算法。

volatile-lru -> 根据LRU算法生成的过期时间来删除。
-allkeys-lru -> 根据LRU算法删除任何key。
volatile-random -> 根据过期设置来随机删除key。
allkeys->random -> 无差别随机删。
volatile-ttl -> 根据最近过期时间来删除(辅以TTL)
noeviction -> 谁也不删,直接在写操作时返回错误。
如果设置了maxmemory,一般都要设置过期策略。Redis默认有六种过期策略

# maxmemory-policy noeviction**
maxmemory-policy volatile-lru
以下是其他配置:

Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程 (在Windows上不支持守护进程)

daemonize no
指定Redis监听端口,默认端口为6379
(在Windows上不支持守护进程)

port 6379
绑定的主机地址

bind 127.0.0.1
指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合

save
Redis默认配置文件中提供了三个条件:

save 900 1
save 300 10
save 60 10000
分别表示900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改以及60秒内有10000个更改。

指定更新日志文件名,默认为appendonly.aof

appendfilename appendonly.aof
指定更新日志条件,共有3个可选值:

no:表示等操作系统进行数据缓存同步到磁盘(快)
always:表示每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全)
everysec:表示每秒同步一次(折衷,默认值)

appendfsync everysec
指定在超过一定的数量或者最大的元素超过某一临界值时,采用一种特殊的哈希算法

hash-max-zipmap-entries 64
hash-max-zipmap-value 512

  1. 安装Ruby

Redis 的集群是用Ruby脚本编写,所以系统需要有 Ruby 环境。

下载地址:https://www.jb51.net/jiaoben/141880.html

安装,下面红框标记的地方必选。
在这里插入图片描述

验证:打开cmd窗口,输入ruby –version出现版本号 表示安装成功
在这里插入图片描述
5. 安装redis的ruby驱动rubygems

地址:https://rubygems.org/pages/download

在这里插入图片描述
可能有点慢,也可以去下面这个地址下载

https://www.jb51.net/softs/539242.html

6.解压到6379文件夹下面(任意位置,此处只是为了方便放在一起)
在这里插入图片描述
进入rubygems-3.1.4目录下面执行cmd命令:ruby setup.rb
在这里插入图片描述
7.切换到6379目录下面,执行命令gem install redis
在这里插入图片描述
8. 安装集群脚本redis-trib

找到第一步下载的source code,解压,将里面src路径下面的redis-trib.rb 复制到6379文件夹下面
在这里插入图片描述
9.安装6个redis服务

redis-server.exe --service-install D:/Redis/Redis6379/redis.windows.conf --service-name redis6379
redis-server.exe --service-install D:/Redis/Redis6380/redis.windows.conf --service-name redis6380
redis-server.exe --service-install D:/Redis/Redis6381/redis.windows.conf --service-name redis6381
redis-server.exe --service-install D:/Redis/Redis6382/redis.windows.conf --service-name redis6382
redis-server.exe --service-install D:/Redis/Redis6383/redis.windows.conf --service-name redis6383
redis-server.exe --service-install D:/Redis/Redis6384/redis.windows.conf --service-name redis6384

``
在这里插入图片描述

  1. 启动这6个服务
    redis-server.exe --service-start --service-name Redis6379
    redis-server.exe --service-start --service-name Redis6380
    redis-server.exe --service-start --service-name Redis6381
    redis-server.exe --service-start --service-name Redis6382
    redis-server.exe --service-start --service-name Redis6383
    redis-server.exe --service-start --service-name Redis6384
    在这里插入图片描述
    11.当前目录执行以下命令

ruby redis-trib.rb create --replicas 1 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384

创建redis集群显示,Sorry, can’t connect to node

第一次是因为redis设置了密码,单机连接都OK,但是创建集群就报错Sorry, can’t connect to node

需要修改

D:\Ruby23-x64\lib\ruby\gems\2.3.0\gems\redis-4.2.1\lib\redis\client.rb

可能大家路径不一样,找一下ruby的安装路径

  class Client
    DEFAULTS = {
      url: -> { ENV["REDIS_URL"] },
      scheme: "redis",
      host: "127.0.0.1",
      port: 6379,
      path: nil,
      timeout: 5.0,
      password: "123456",
      db: 0,
      driver: nil,
      id: nil,
      tcp_keepalive: 0,
      reconnect_attempts: 1,
      reconnect_delay: 0,
      reconnect_delay_max: 0.5,
      inherit_socket: false,
      sentinels: nil,
      role: nil
    }.freeze

添加或修改password就OK了

第二次报这个错是因为手残,取消了集群密码,重新创建redis集群就GG了,把password注释掉就行了!

注:如果出现Node is not empty,先清空所有端口目录下面的nodes.conf和dump.rdb文件再重复执行第10步,然后再执行上面的命令。
在这里插入图片描述
注意途中标记的红色地方,yes。

  1. 测试
    验证集群是否启动成功
    命令 redis-cli -c -h ”地址” -p “端口号” ; c 表示集群

例如 redis-cli -c -h 127.0.0.1 -p 6380

keys * 查询key的信息

del k1 删除key

在这里插入图片描述

第一个question:

以上安装过程很容易把,但是安装之后,会发现只有可以127.0.0.1可以访问,本地的ip地址都不能访问,远程更别提了,那咋整呢,很容易的。

第一步注释:
#bind 127.0.0.1
第二步:
protected-mode yes 改为 protected-mode no
第三步:若需要设置授权, 那么找到requirepass 将其后的值改为自已的密码
requirepass 123456

第二个question:

这时候 在开启一个终端 进入redis安装目录 输入redis-cli.exe -h 你的ip地址 -p 6379,发现各种认证失败
在这里插入图片描述
怎么办呢,很简单 敲入 auth “密码” 即可

比如你的密码是 root

敲入 auth “root”即可

第三个question:

在创建redis集群的时候,创建节点的时候出现错误
[ERR] Node 127.0.0.1:6381 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0
问题解决方案(删除D:\MyRedisSwap里面的文件)
1)、将需要新增的节点下aof、rdb等本地备份文件删除;

2)、同时将新Node的集群配置文件删除,即:删除你redis.conf里面cluster-config-file所在的文件;

3)、再次添加新节点如果还是报错,则登录新Node,./redis-cli–h x –p对数据库进行清除:

172.168.63.201:7001> flushdb #清空当前数据库

其他命令
关闭这6个服务
redis-server.exe --service-stop --service-name Redis6379
redis-server.exe --service-stop --service-name Redis6380
redis-server.exe --service-stop --service-name Redis6381
redis-server.exe --service-stop --service-name Redis6382
redis-server.exe --service-stop --service-name Redis6383
redis-server.exe --service-stop --service-name Redis6384

卸载服务
redis-server.exe --service-uninstall --service-name Redis6379
redis-server.exe --service-uninstall --service-name Redis6380
redis-server.exe --service-uninstall --service-name Redis6381

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
windows环境redis集群搭建搭建频繁如下: redis集群测试 01、安装Redis 02、创建6个目录Redis7001、Redis7002、Redis7003、Redis7004、Redis7005、Redis7006 03、把Redis目录下的redis.windows.conf文件分别复制到上创建创建的6个文件夹中 04、修改6个文件夹中的redis.windows.conf文件 a、修改端口,分别对应 700* b、绑定IP,这里使用的是一台电脑,都设置为127.0.0.1 c、指定数据文件(appendonly.aof)的存放位置,dir C:/MySoftPath/Java/Redis/Redis700*/ d、开启集群模式,cluster-enabled yes e、集群文件配制信息(不用设置路径,自动在对应的700*下面),cluster-config-file nodes-700*.conf f、超时时间,cluster-node-timeout 5000 g、开启aof模式,appendonly yes h、数据文件名称,appendfilename "appendonly.aof" 05、启动这6个redis 06、安装ruby环境(rubyinstaller-2.2.4-x64.exe),注意(安装所有模块),后台需要使用此环境。 07、下载ruby环境Redis的驱动“redis-3.2.2.gem”。 08、把“redis-3.2.2.gem”放到ruby环境下进行驱动,在所在的目录运行【gem install --local redis-3.2.2.gem】 09、把redis-trib.rb集群工具放在redis目录下,使用此工具创建集群 10、创建Redis集群redis-trib.rb create --replicas 0 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】 11、注意,如果第10步没有反应也不报错,在redis-trib.rb命令前面使用ruby 【ruby redis-trib.rb create --replicas.........】 12、最后配上别人的博客【http://www.cnblogs.com/tommy-huang/p/6240083.html】 。。。。。。。。。。。。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值