参考:
https://my.oschina.net/guol/blog/506193(安装)
https://www.cnblogs.com/kerwinC/p/6611634.html(安装)
https://blog.csdn.net/qq_39244264/article/details/80281702
https://www.cnblogs.com/xuliangxing/p/7133544.html
redis模式有多种,如下:
一、单节点模式
二、主从模式 一主二从
三、redis-sentinel(哨兵机制)集群 一主二从三哨兵
四、cluster模式
一般情况下,使用主从模式加Sentinal监控就可以满足基本需求了,但是当数据量过大一个主机放不下的时候,就需要对数据进行分区,将key按照一定的规则进行计算,并将key对应的value分配到指定的Redis实例上,这样的模式简称Redis集群。
1、cluster模式的安装及配置:
tar zxvf redis-4.0.1.tar.gz
cd redis-4.0.1/
make
make PREFIX=/opt/local/redis-cluster install
2、修改配置文件
看看6379的具体信息:grep -v -E '(^#|^$)' redis-6379.conf
主要是修改端口及部分cluster的路径
3、启动redis
./server ./../conf/redis.conf
4、启动集群
./redis-trib.rb create --replicas 1 172.16.1.100:6379 172.16.1.100:6380 172.16.1.100:6381 172.16.1.100:7379 172.16.1.100:7380 172.16.1.100:7381
启动报错,因为启动集群的时候需要用到ruby,但测试机默认没有安装ruby
下一步:进行ruby安装
官网
https://www.ruby-lang.org/en/downloads/
下载地址
https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.1.tar.gz
解压缩
$ tar -xvzf ruby-2.4.1.tgz
$ cd ruby-2.4.1
配置并编译源代码
$ ./configure
./configure --prefix=/usr/local/ruby-1.9.1
$ make
$ sudo make install
安装成功,检出版本
$ruby -v
ruby -v 报错,加个软链:
ln -s /usr/local/ruby/bin/ruby /usr/bin/ruby
$ruby -v
显示版本信息,正常了
ruby -v 成功之后,发现执行还是报错,搜索发现因为ruby中没有导入redis库
下一步:ruby中安装redis库
下载redis-4.0.1.gem,执行安装:
gem install -l ./redis-4.0.1.gem
参考:https://blog.csdn.net/qq_39244264/article/details/80281702
执行发现gem找不到,
下一步:安装gem
参考:https://www.cnblogs.com/xuliangxing/p/7133544.html
RubyGems 是 Ruby 的一个包管理器,它提供一个分发 Ruby 程序和库的标准格式,还提供一个管理程序包安装的工具。
一、在线安装RubyGems
通过命令直接安装
& yum install rubygems
二、离线安装RubyGems
如果你的 Ruby 低于 1.9 版本,也可以通过手动安装:
首先下载安装包:https://rubygems.org/pages/download。
解压并进入目录,执行命令:ruby setup.rb
解压
tar -zxvf rubygems-2.6.12.tgz
$ cd /home/cmfchina/rubygems
$ tar -zxvf rubygems-2.6.12.tgz
执行命令:
ruby setup.rb
更新 RubyGems 命令:
$ gem update --system # 需要管理员或root用户
查看是否安装成功
which gem
gem -v 失败,因为安装路径没有在默认路径下,加软链
ln -s /opt/local/rubygems-2.7.7/bin/gem /usr/bin/gem
gem -v成功
至此,全部安装完成,开始回到上一步,执行redis库的安装
gem install -l ./redis-4.0.1.gem
进入redis-cluster进行集群创建
./redis-trib.rb create --replicas 1 10.141.176.195:6379 10.153.43.135:6380 10.153.62.135:6381 10.141.176.195:7379 10.153.43.135:7380 10.153.62.135:7381
执行成功如下:
>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
10.141.176.195:6379
10.153.43.135:6380
10.153.62.135:6381
Adding replica 10.153.43.135:7380 to 10.141.176.195:6379
Adding replica 10.141.176.195:7379 to 10.153.43.135:6380
Adding replica 10.153.62.135:7381 to 10.153.62.135:6381
下一步:使用rb命令查看redis集群情况,并对集群进行管理
检查一下cluster的状态:
参考:https://blog.csdn.net/xfg0218/article/details/56505216
关闭redis服务./bin/redis-cli -p 端口号 shutdown
报错:[ERR]Node 192.168.25.135:7001 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.
解决办法:关闭redis服务,然后删除conf下的node开头的文件,重新启动redis解决
报错:>>> Creating cluster
[ERR] Sorry, can't connect to node 10.153.43.135:6380
解决办法:
检查bind全部都注释了,mode也不是安全模式,后来发现这台机器启动的有问题,打印日志跟别的不一样。因此重新安装redis仍未解决,重新换了台机器安装redis后,成功创建集群OK。
redis查看集群状态是否正常
进入集群客户端
任意选一个redis节点,进入redis 所在目录
cd /redis 所在目录/bin/
./redis-cli -h 本地节点的ip -p redis的端口号 -a 密码
cluster nodes
cluster info 查看集群状态
./redis-cli -h 10.148.23.194 -p 6379
cluster nodes
如果有节点下线,显示如下
正常情况,显示如下:
网友评论