Linux运维笔记
我们一直在努力

Redis集群搭建

Cluster(集群):
· 分布式数据库:通过分片机制来进行数据分布,Cluster内的每个节点仅持有数据库的一部分数据
· 一个Redis集群就是由多个节点组成,刚开始每个节点都是相互独立的,假如集群后,就称为集群中的节点了。
· Redis的集群属于去中心化的集群,意味着对Redis而言,他的集群中的每一个节点都可以作为整个集群的接入点。
· 每一个节点都可以直接接入客户端请求,所以客户端连入每一个节点都是OK的。
· 这个节点会对整个数据集群内的数据,持有全局视角。
· 也就是说我们数据是分片的,假设有10000个键,由4个节点分摊,各自至持有2500个,客户端连入到第一个节点获取某个键时,每一个节点都有全局眼光,知道哪个键在哪个节点上,所以每个节点都有全局元数据列表,这个列表当中明确映射指明了,哪个键有哪个节点持有。
· 所以当某个服务器发起请求操作时,这个服务器会告诉你应该去找哪个节点,客户端会自动去找那个真正持有这个键的的节点来获取数据。
源码安装Redis:
tar -xf redis-4.0.9.tar.gz
cd redis-4.0.9
yum install -y gcc-c++
yum localinstall -y jemalloc-3.6.0-1.el7.x86_64.rpm
make prefix
make install
mkdir /data/redis-cluster -p
cd /data/redis-cluster
配置Redis cluster:
bind 192.168.0.70
port 8001
daemonize yes
pidfile /tmp/redis-run/redis-8001.pid
logfile “/tmp/redis-log/redis-8001.log”
dir /data/redis-cluster/8001
cluster-enabled yes
cluster-config-file nodes-8001.conf
cluster-node-timeout 5000
appendonly yes
appendfilename “redis-cluster-8001.aof”
mkdir /tmp/redis-run -p
mkdir /tmp/redis-log -p
for i in 800{1..3};do cp ~/redis-4.0.9/redis.conf /data/redis-cluster/$i/redis-$i.conf;done
for i in 800{1..3};do ln -s ~/redis-4.0.9/src/redis-server /data/redis-cluster/$i/;done
for i in 900{1..3};do sed -i ‘s/^bind.*/bind 192.168.0.71/’ /data/redis-cluster/$i/redis-$i.conf;done
for i in 900{1..3};do sed -i “s/^port.*/port $i/” /data/redis-cluster/$i/redis-$i.conf;done
for i in 900{1..3};do sed -i “s/^daemonize.*/daemonize yes/” /data/redis-cluster/$i/redis-$i.conf;done
for i in 900{1..3};do sed -i “s@^pidfile.*@pidfile /tmp/redis-run/redis-$i.pid@” /data/redis-cluster/$i/redis-$i.conf;done
for i in 900{1..3};do sed -i “s@^logfile.*@logfile “/tmp/redis-log/redis-$i.log”@” /data/redis-cluster/$i/redis-$i.conf;done
for i in 900{1..3};do sed -i “s@^dir.*@dir /data/redis-cluster/$i@” /data/redis-cluster/$i/redis-$i.conf;done
for i in 900{1..3};do sed -i “s/^# cluster-enabled.*/cluster-enabled yes/” /data/redis-cluster/$i/redis-$i.conf;done
for i in 900{1..3};do sed -i “s/^# cluster-config-file.*/cluster-config-file nodes-$i.conf/” /data/redis-cluster/$i/redis-$i.conf;done
for i in 900{1..3};do sed -i “s/^appendfilename.*/appendfilename “redis-cluster-$i.aof”/” /data/redis-cluster/$i/redis-$i.conf;done
for i in 900{1..3};do /data/redis-cluster/$i/redis-server /data/redis-cluster/$i/redis-$i.conf;done
安装Ruby:
yum install -y centos-release-scl-rh/        会在/etc/yum.repos.d/目录下多出一个CentOS-SCLo-scl-rh.repo源
yum install -y rh-ruby23
scl enable rh-ruby23 bash
gem install redis
ruby -v
创建集群:
redis-3.2.11/src/redis-trib.rb create –replicas 1 172.16.0.173:8001 172.16.0.173:8002 172.16.0.173:8003 172.16.0.101:8001 172.16.0.101:8002 172.16.0.101:8003
删除集群rm -f /data/redis-cluster/800{1..3}/nodes-800{1..3}.conf
赞(0) 打赏

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址