linux怎么查看本机内存大小
240
2022-11-11
redis群集
Redis群集
Redis 是一个开源的 key-value 存储系统,由于出众的性能,大部分互联网企业都用来做服务器端缓存。Redis 在3.0版本前只支持单实例模式,虽然支持主从模式、哨兵模式部署来解决单点故障,但是现在互联网企业动辄大几百G的数据,可完全是没法满足业务的需求,所以,Redis 在 3.0 版本以后就推出了集群模式。 GB < TB < PB--- Redis 集群采用了P2P的模式,完全去中心化。Redis 把所有的 Key 分成了 16384 个 slot,每个 Redis 实例负责其中一部分 slot 。集群中的所有信息(节点、端口、slot等),都通过节点之间定期的数据交换而更新。 Redis 客户端可以在任意一个 Redis 实例发出请求,如果所需数据不在该实例中,通过重定向命令引导客户端访问所需的实例。 Redis 集群搭建规划,由于集群至少需要6个节点(3主3从模式),计划是在一台机器上模拟一个集群, 这和生产环境的集群搭建没本质区别
(1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽. (2)节点的fail是通过集群中超过半数的节点检测失效时才生效. (3)客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可 创建多节点 cluster集群 HA高可用 先源码装一个redis
创建实例目录
mkdir /etc/redis-cluster cd /etc/redis-cluster mkdir -p 6379/data 6380/data 6381/data 6382/data 6383/data 6384/data
复制执行脚本
mkdir /etc/redis-cluster/bin cd /opt/redis-5.0.0/src/ cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server redis-trib.rb /etc/redis-cluster/bin
复制一个新 Redis 实例
cp /etc/redis/* /etc/redis-cluster/6379 vi /etc/redis-cluster/6379/redis.conf port 6379(每个节点的端口号) daemonize yes bind 192.168.86.130(绑定当前机器 IP) dir "/etc/redis-cluster/6379/data/"(数据文件存放位置) pidfile /var/run/redis_6379.pid(pid 6379和port要对应) cluster-enabled yes(启动集群模式) cluster-config-file nodes6379.conf(6379和port要对应) cluster-node-timeout 15000 appendonly yes
\cp -rf 命令是不使用别名来复制
cp -rf /etc/redis-cluster/6379/* /etc/redis-cluster/6380 cp -rf /etc/redis-cluster/6379/* /etc/redis-cluster/6381 cp -rf /etc/redis-cluster/6379/* /etc/redis-cluster/6382 cp -rf /etc/redis-cluster/6379/* /etc/redis-cluster/6383 cp -rf /etc/redis-cluster/6379/* /etc/redis-cluster/6384
分别修改6380 、6381、6382、6383、6384节点配置文件
vi /etc/redis-cluster/6380/redis.conf :%s/6379/6380/g //文本内使用全局替换 vi /etc/redis-cluster/6381/redis.conf :%s/6379/6381/g //文本内使用全局替换 vi /etc/redis-cluster/6382redis.conf :%s/6379/6382g //文本内使用全局替换 vi /etc/redis-cluster/6383redis.conf :%s/6379/6383g //文本内使用全局替换 vi /etc/redis-cluster/6384redis.conf :%s/6379/6384g //文本内使用全局替换
开启所有节点服务(&是后台运行)
for i in 79 80 81 82 83 84 do redis-server /etc/redis-cluster/63$i/redis.conf & done
登录随便一个节点验证 确认节点服务可以正常登陆
redis-cli -h 192.168.80.100 -p 6379
安装群集需要的 ruby环境由于 Redis 集群需要使用 ruby 命令,所以我们需要安装 ruby 和相关接口。
yum -y install ruby ruby-devel rubygems rpm-build
gem sources -a --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB curl -sSL | bash -s stable source /etc/profile.d/rvm.
gem install redis
redis-trib.rb
创建群集简单解释一下这个命令:调用 ruby 命令来进行创建集群,--replicas 1 表示主从复制比例为 1:1,即一个主节点对应一个从节点;然后,默认给我们分配好了每个主节点和对应从节点服务,以及 solt 的大小,因为在 Redis 集群中有且仅有 16383 个 solt ,默认情况会给我们平均分配,当然你可以指定,后续的增减节点也可以重新分配。
./redis-trib.rb create --replicas 1 192.168.80.100:6379 192.168.80.100:6380 192.168.80.100:6381 192.168.80.100:6382 192.168.80.100:6383 192.168.80.100:6384 (yes)
redis-cli --cluster create 192.168.80.100:6379 192.168.80.100:6380 192.168.80.100:6381 192.168.80.100:6382 192.168.80.100:6383 192.168.80.100:6384 --cluster-replicas 1
/usr/local/redis-cluster/bin/redis-cli -c -h 192.168.80.100 -p 6379 //登录 192.168.86.130:6379> cluster info //查看状态 192.168.86.130:6379> cluster nodes //查看节点信息
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~