数据库
首页 > 数据库> > 一站式学习Redis, 从入门到高可用分布式实践-09-初识redis cluster

一站式学习Redis, 从入门到高可用分布式实践-09-初识redis cluster

作者:互联网

redis cluster是redis3.0提供的分布式解决方案,有效的解决了redis分布式方面的需求,同时它也是学习分布式存储的绝佳案例。

  1. 学习redis cluster是大家学习分布式数据库的一个很好的案例

  2. 我们为什么需要redis cluster集群这样的功能?
    并发量:redis单机默认支持10万/s ,如果对并发要求更高,百万/s呢?
    数据量:redis单机内存是16-256G,如果业务需要500G呢?

  1. 数据分布概论
  1. 节点取余分区
  1. 一致性哈希分区
  1. 虚拟槽分区
  1. redis cluster的基本架构
  1. redis cluster原生命令安装
    原生命令安装可以充分理解redis cluster的基本架构
  1. 原生安装redis cluster 01-准备节点
    编写6个配置文件,三个主节点,三个从节点
port 7000
daemonize yes
dir "/opt/soft/redis/data"
logfile "7000.log"
dbfilename "dump-7000.rdb"
cluster-enabled yes
cluster-config-file nodes-7000.conf
cluster-require-full-coverage no

# 注意上面的所有port端口和下面的总线端口都要开开,否则集群启动失败
# 云服务器上部署需指定公网ip
cluster-announce-ip xxx.xxx.xxx.xxx
# Redis总线端口,用于与其它节点通信
cluster-announce-bus-port port + 10000

开启集群6个节点服务
redis-server redis-7000.conf
查看集群节点的配置
redis-cli -p 7000 cluster nodes
查看集群节点的信息
redis-cli -p 7000 cluster info

  1. 原生安装redis cluster 02-meet操作(节点握手)
redis-cli -p 7000 cluster meet 公网ip 7001
redis-cli -p 7000 cluster meet 公网ip 7002
redis-cli -p 7000 cluster meet 公网ip 7003
...04
...05
  1. 原生安装redis cluster 03-分配槽
start=$1
end=$2
port=$3
for slot in `seq ${start} ${end}`
do
    echo "slot:${slot}"
    redis-cli -p ${port} cluster addslots ${slot}
done
sh addslots.sh 0 5461 7000
sh addslots.sh 5462 10922 7001
sh addslots.sh 10923 16383 7002
  1. 原生安装redis cluster 04-分配主从
    redis-cli -p 7003 cluster replicate 99cfeb7aaxxxxc5b5c3a1965b 这个id就是7000端口的Id,通过命令redis-cli -p 7000 cluster nodes查看
redis-cli -p 7003 cluster replicate 7000-c5b5c3a1965b
redis-cli -p 7004 cluster replicate 7001-axxxxc5b5c3a1965b
redis-cli -p 7005 cluster replicate 7002-b7aaxxxxc5b5c3a1965b

至此,原生安装redis cluster已经大功告成。

  1. ruby环境准备
  1. 安装步骤
wget https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.0-preview1.tar.gz
tar xvf ruby-3.2.0.tar.gz
cd ruby-3.2.0
./configure -prefix=/usr/local/ruby
make
make install
./configure && make && make install

wget https://rubygems.org/downloads/redis-4.6.0.gem
sudo gem install -l redis-4.6.0.gem
sudo gem list -- check redis gem

查看ruby版本
ruby --version

  1. redis-trib构建集群
port 8000
daemonize yes
dir "/opt/soft/redis/data"
logfile "8000.log"
dbfilename "dump-8000.rdb"
cluster-enabled yes
cluster-config-file nodes-8000.conf
cluster-require-full-coverage no
protected-mode no

# 云服务器上部署需指定公网ip
cluster-announce-ip xxx.xxx.xxx.xxx
# Redis总线端口,用于与其它节点通信
cluster-announce-bus-port 18000
  1. 原生命令与redis-trib.rb对比

标签:cli,redis,09,Redis,cluster,ip,7000,节点
来源: https://www.cnblogs.com/mayanan/p/16156774.html