Redis Cluster集群配置

Redis Cluster集群配置

背景:Redis Cluster 提供了一种运行 Redis 安装的方法,其中数据 在多个 Redis 节点之间自动分片

一、下载安装

1.下载安装redis

wget https://download.redis.io/releases/redis-3.2.0.tar.gz
tar zxf redis-3.2.0.tar.gz
cd redis-3.2.0
make
make install PREFIX=/usr/local/redis-cluster

2.集群配置文件

cd /usr/local/redis-cluster
mkdir 6379 6380 6381 6382 6383 6384
#redis.conf配置文件,端口6379需要和目录保持一致
bind 0.0.0.0
daemonize yes
port 6379
cluster-enabled yes
cluster-config-file "nodes.conf"
cluster-node-timeout 15000
cluster-require-full-coverage no
appendonly yes
masterauth "***"
requirepass "***"

3.安装ruby

yum remove ruby
yum install ruby
yum install rubygems
gem install redis
#会提示ERROR:  Error installing redis redis #requires Ruby version >= 2.2.2.
#需要用rvm 安装ruby指定版本
curl -L get.rvm.io | bash -s stable
rvm install 2.3.0
rvm use 2.3.0
rvm remove 2.0.0 #删除掉系统旧的ruby2.0.0
ruby --version #查看版本
#如果还没有变更过来的话,直接将源码ruby命令cp到/usr/bin/下
cp /usr/local/rvm/src/ruby-2.3.0/ruby /usr/bin/ruby
再次执行确认ruby --version

二、配置集群

1.启动redis所有节点

目前总计6个节点,启动脚本入下:

start-all.sh脚本内容:
cd 6379
redis-server redis.conf &
cd ..
cd 6380
redis-server redis.conf &
cd ..
cd 6381
redis-server redis.conf &
cd ..
cd 6382
redis-server redis.conf &
cd ..
cd 6383
redis-server redis.conf &
cd ..
cd 6384
redis-server redis.conf &
cd ..

2.修改client.rb文件,创建带认证密码集群

vim /usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/gems/2.3.0/gems/redis-4.3.1/lib/redis/client.rb

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

修改如上的password内容

3.创建集群

./redis-trib.rb create --replicas 1 10.0.0.1:6379 10.0.0.1:6380 10.0.0.1:6381 10.0.0.1:6382 10.0.0.1:6383 10.0.0.1:6384 -a ***  
结果入下:
>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
10.0.0.1:6379
10.0.0.1:6380
10.0.0.1:6381
Adding replica 10.0.0.1:6382 to 10.0.0.1:6379
Adding replica 10.0.0.1:6383 to 10.0.0.1:6380
Adding replica 10.0.0.1:6384 to 10.0.0.1:6381
M: a0c2a7a48ccceb5c6ed7c78c80f2966cc38cfbfb 10.0.0.1:6379
   slots:0-5460 (5461 slots) master
M: 9ffcc65c57a4e6909937c468ed011fd27285b01e 10.0.0.1:6380
   slots:5461-10922 (5462 slots) master
M: fc7a9badfaaffc11a9519504467515010cf5a934 10.0.0.1:6381
   slots:10923-16383 (5461 slots) master
S: 6ababf944d4bd0e81a25b805a5a3e8c24225cfdb 10.0.0.1:6382
   replicates a0c2a7a48ccceb5c6ed7c78c80f2966cc38cfbfb
S: 51012b44e11a6bc23c4283c59bede25433844c9b 10.0.0.1:6383
   replicates 9ffcc65c57a4e6909937c468ed011fd27285b01e
S: 60650186bad3c5814ac768302dc5038df3c56c51 10.0.0.1:6384
   replicates fc7a9badfaaffc11a9519504467515010cf5a934
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join....
>>> Performing Cluster Check (using node 10.0.0.1:6379)
M: a0c2a7a48ccceb5c6ed7c78c80f2966cc38cfbfb 10.0.0.1:6379
   slots:0-5460 (5461 slots) master
M: 9ffcc65c57a4e6909937c468ed011fd27285b01e 10.0.0.1:6380
   slots:5461-10922 (5462 slots) master
M: fc7a9badfaaffc11a9519504467515010cf5a934 10.0.0.1:6381
   slots:10923-16383 (5461 slots) master
M: 6ababf944d4bd0e81a25b805a5a3e8c24225cfdb 10.0.0.1:6382
   slots: (0 slots) master
   replicates a0c2a7a48ccceb5c6ed7c78c80f2966cc38cfbfb
M: 51012b44e11a6bc23c4283c59bede25433844c9b 10.0.0.1:6383
   slots: (0 slots) master
   replicates 9ffcc65c57a4e6909937c468ed011fd27285b01e
M: 60650186bad3c5814ac768302dc5038df3c56c51 10.0.0.1:6384
   slots: (0 slots) master
   replicates fc7a9badfaaffc11a9519504467515010cf5a934
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

三、集群测试

1.命令行测试-c参数表示集群模式

# ./redis-cli -p 6379 -c -a adminadmin
127.0.0.1:6379> get v
-> Redirected to slot [7761] located at 10.0.0.1:6380
(nil)
10.0.0.1:6380> get c
"vv"
10.0.0.1:6380> get we
-> Redirected to slot [11725] located at 10.0.0.1:6381
"12"
10.0.0.1:6381> get bb
-> Redirected to slot [8620] located at 10.0.0.1:6380
(nil)
10.0.0.1:6380> get we
-> Redirected to slot [11725] located at 10.0.0.1:6381
"12"
10.0.0.1:6381> keys *
1) "we"
2) "a"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值