redis单机集群
准备一台虚拟机rhel6.5
官网上下载redis-4.0.8.tar.gz
tar zxf redis-4.0.8.tar.gz
mkdir cluster
mkdir 7001 # 创建各自的主目录
mkdir 7002
mkdir 7003
mkdir 7004
mkdir 7005
mkdir 7006
cd redis-4.0.8
cd src
cp redis-trib.rb /usr/local/bin/
cd /usr/local/bin
cdedis-trib.rb 执行命令,会报错**
**解决其需要的依赖性**
yum install libyaml-0.1.3-4.el6_6.x86_64.rpm ruby-2.2.3-1.el6.x86_64.rpm -y
gem install --local redis-4.0.1.gem
gem list --local ###做完上述步骤,列出本地gem,发现会有东西
cd /usr/local/cluster/7001/
vim redis.conf
port 7001
cluster-enabled yes # 打开集群设置
cluster-config-file nodes.conf
cluster-node-timeout 5000 # 延长时间
appendonly yes
daemonize yes
pidfile /usr/local/cluster/7001/redis.pid # pid文件路径
logfile /usr/local/cluster/7001/redis.log # 日志文件路径
redis-server redis.conf ###打开集群服务
cat redis.log # 查看日志,会有警告
cat /proc/sys/net/core/somaxconn # 查看这个文件数字,按照提示修改
按照日志中的提示信息:
echo 511 > /proc/sys/net/core/somaxconn
sysctl -w vm.overcommit_memory=1
vim /etc/sysctl.conf ##编辑配置文件
写入:vm.overcommit_memory=1
echo never > /sys/kernel/mm/transparent_hugepage/enabled
redis-server redis.conf ###打开集群
cat redis.log ###再次查看日志,警告也没有了
将之前配置好的配置文件复制到其他节点
cp redis.conf ../7002/
cp redis.conf ../7003/
cp redis.conf ../7004/
cp redis.conf ../7005
cp redis.conf ../7006
cd ..
cd 7002/
vim redis.conf ###将文件中的端口号改为7002和存放目录的更改
redis-server redis.conf ###打开集群的redis
cd ..
cd 7003/
vim redis.conf ###将文件中的端口号改为7003和存放目录的更改
redis-server redis.conf ###打开集群的redis
cd ..
cd 7004/
vim redis.conf ###将文件中的端口号改为7004和存放目录的更改
redis-server redis.conf ###打开集群的redis
cd ..
cd 7005/
vim redis.conf ###将文件中的端口号改为7005和存放目录的更改
redis-server redis.conf ###打开集群的redis
cd ..
cd 7006/
vim redis.conf ###将文件中的端口号改为7006和存放目录的更改
redis-server redis.conf ###打开集群的redis
ps ax ##查看进程是否都打开了
netstat -antlp ##查看端口号是否开启
redis-trib.rb create –replicas 1 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 ###创建集群
redis-trib.rb check 127.0.0.1:7001 # 查看集群
[root@server5 7006]# redis-cli -c -p 7001
127.0.0.1:7001> set name wdd
-> Redirected to slot [5798] located at 127.0.0.1:7002 # 写入的内容在7002上
OK
redis-cli -c -p 7002
127.0.0.1:7002> info # 7002的master是7005
127.0.0.1:7002> get name # 查找成功
"wdd"
kill -9 1120
redis-cli -c -p 7006 ##登陆redis后,get还能看见之前存入的内容
ps ax
kill -9 4579 ##再杀掉slave
redis-cli -c -p 7001 ###登陆redis后,get就会显示cluster is down
关闭掉一半以上的master后,集群的功能也会破坏