现在redis最新版是5.06,我安装的是5.05。已经安完一段时间了,没有多余的废话。
一般情况下,redis安装的只是一个单点,集群一般是指一个点复制了很多份。
而cluster区别于集群,不是通过冗余的方式,多个点分配不同的hash槽,key按照对应的hash值,存进不同的槽。
存、取某个key的值的时候,通过各个点之间建立的链接转向,再取值返回。例如key在5号服务器,在1号服务器去查,
1号会通过与其他服务器建立的链接转向,最终到达5号服务器取到值,再从1号服务器return。
举个现实的例子:
单点的redis相当于一家医院,集群和cluster相当于多家。
如果是集群,你在1号医院做完抽血检查,之后去了3号医院,如果医院之间互相提供备份,那么你在3号医院能看到报告,
如果没有互相提供,就是先在最现实的,再抽一遍血吧。
如果是cluster,相当于你告诉医生你在哪家医院抽的血,医生通过网络登陆其他医院,远程看到结果的快照,不用下载。
个人习惯,安装包存在/home/soft下面,安装在/usr/local下。
cd /home/soft
tar -xvf redis-5.0.5.tar.gz
cd redis-5.05/src
make PREFIX=/usr/local/redis
install
这时候,在/usr/local/redis目录下,产生一个bin目录,其中两个命令比较有用,redis-server,redis-cli
安装目录下,找到redis.conf文件,修改 bind 当前IP,protected-mode no,daemonize yes,需要密码的话,修改requirepass password
/usr/local/redis/bin/redis-server redis.config 启动,
redis-cli -p 默认端口 登陆,在redis命令符下 auth password 进入自己的16个DB
预计搭建6个点,组成3主3从结构。端口6379、6479、6579、6679、6779、6879
开启Cluster:cluster-enabled yes
绑定地址:bind 192.168.XXX.XXX ,//多台服务器要bind不同ip,我目前是一台做6个点,所以都是一个ip 192.168.100.10
集群配置文件:cluster-config-file nodes-6379.conf 这个文件不用配,但要保证多个配置文件中不同,防止冲突。
集群超时时间:cluster-node-timeout 15000。
槽是否全覆盖:cluster-require-full-coverage no。默认是yes。16384个槽没全覆盖也不会停止服务。
后台运行:daemonize yes
输出日志:logfile “/var/logs/redis/redis_6379.log”
监听端口:port 6379
pidfile /var/run/redis_6379.pid
复制redis.conf,分别修改为6479 到6879的配置。
/usr/local/redis/bin/redis-server /usr/local/redis/redis_6379.conf
/usr/local/redis/bin/redis-server /usr/local/redis/redis_6479.conf
/usr/local/redis/bin/redis-server /usr/local/redis/redis_6579.conf
/usr/local/redis/bin/redis-server /usr/local/redis/redis_6679.conf
/usr/local/redis/bin/redis-server /usr/local/redis/redis_6779.conf
/usr/local/redis/bin/redis-server /usr/local/redis/redis_6879.conf
第一次最早6个,最少3master
/usr/local/redis/bin/redis-cli -h 192.168.100.10 --cluster create 192.168.100.10:6379 192.168.100.10:6479 192.168.100.10:6579 192.168.100.10:6679 192.168.100.10:6779 192.168.100.10:6879 --cluster-replicas 1
--cluster-replicas 1必须加,否则都变成master了
-h 192.168.100.10 命令中需要写这个,是因为我配置文件中bind 192.168.100.10,127.0.0.1不认了。
增加节点命令:
/usr/local/redis/bin/redis-cli -h 192.168.100.10 --cluster add-node 192.168.100.10:6979(newNode)192.168.100.10:6379(oldnode)
减少节点命令
/usr/local/redis/bin/redis-cli -h 192.168.100.10 --cluster add-node ip:port nodeId(可以通过check看到)
检查状态命令
/usr/local/redis/bin/redis-cli -h 192.168.100.10 --cluster check 任意一个ip:port 能看到nodeId
1../redis-cli -h 192.168.100.10 -p 6379 -c 再访问redis需要加-c,代表cluster
2.make的时候如果报错,一般是编译问题,需要安装gcc
3.建立集群的时候,如果遇到找不到目录的错误信息,并有ruby的提示,需要yum install ruby
原文:https://www.cnblogs.com/xuezhankui/p/11878358.html