redis搭建--三主三从

前言

redis cluster在设计的时候,就考虑到了去中心化,去中间件,也就是说,集群中的每个节点都是平等的关系,都是对等的,每个节点都保存各自的数据和整个集群的状态。

每个节点都和其他所有节点连接,而且这些连接保持活跃,这样就保证了我们只需要连接集群中的任意一个节点,就可以获取到其他节点的数据。

Redis 集群没有并使用传统的一致性哈希来分配数据,而是采用另外一种叫做哈希槽 (hash slot)的方式来分配的。redis cluster 默认分配了 16384 个slot,当我们set一个key 时,会用CRC16算法来取模得到所属的slot,然后将这个key 分到哈希槽区间的节点上,

具体算法就是:CRC16(key) % 16384。所以我们在测试的时候看到set 和 get 的时候,直接跳转到了7000端口的节点。

Redis 集群会把数据存在一个 master 节点,然后在这个 master 和其对应的salve 之间进行数据同步。当读取数据时,也根据一致性哈希算法到对应的 master 节点获取数据。只有当一个master 挂掉之后,才会启动一个对应的 salve 节点,充当 master 。

下载地址

wget http://download.redis.io/releases/redis-3.2.4.tar.gz

解压安装

tar -zxvf redis-3.2.4.tar.gz 
cd redis-3.2.4
make && make install

如果遇到需要安装gcc ,执行以下命令

yum install gcc gcc-c++ openssl* readline* ncurses* zlib* libxml* libjpeg* libpng* libxslt* libtool* 

安装ruby命令 --redis5.0以下版本需要

yum install ruby

yum install rubygems

gem install redis(安装reids 和gem接口)

创建redis-cluster,并在里面创建7001,7002,7003,7004,7005,7006,复制redis.conf到不同的目录下

mkdir redis-cluster && cd redis-cluster  

for i in {1..6};do mkdir 700$i ;done

修改redis.conf(从redis3.2.4目录拷贝过来即可)

daemonize yes                                             #redis后台运行
port 700*
bind 192.168.1.171                                        #绑定当前机器ip
dir /usr/local/redis-cluster/700*/                        #rdb,aof等数据文件存放位置
pidfile /var/run/redis_700*.pid                           #默认路径,可自行修改
logfile "/opt/redis-3.2.4/logs/redis-700*.log"
cluster-enabled yes                                       #启动集群模式)
cluster-config-file nodes700*.conf                        #集群的配置文件,首次启动自动生成
cluster-node-timeout 15000 #超时时间,默认15秒
appendonly no #aof日志,默认不开启
masterauth <yourpassword> #连接主节点密码 ,节点密码必须一致
requirepass <yourpassword> #各个节点访问密码

 启动各个节点redis服务

/opt/redis-3.2.4/src/redis-server /opt/redis-cluster/7001/redis.conf

/opt/redis-3.2.4/src/redis-server /opt/redis-cluster/7002/redis.conf

/opt/redis-3.2.4/src/redis-server /opt/redis-cluster/7003/redis.conf

/opt/redis-3.2.4/src/redis-server /opt/redis-cluster/7004/redis.conf

/opt/redis-3.2.4/src/redis-server /opt/redis-cluster/7005/redis.conf

/opt/redis-3.2.4/src/redis-server /opt/redis-cluster/7006/redis.conf

查看节点服务情况

netstat -tnulp | grep redis
yum install net-tools -y        #安装netstat指令

创建集群

注:前三个节点为主节点,后三个为从节点,1-4,2-5,3-6如此主从关系;
       选项–replicas 1 表示为集群中的每个主节点创建一个从节点。

./redis-trib.rb  create  --replicas  1  192.168.88.166:7001  192.168.88.166:7002 192.168.88.166:7003  192.168.88.166:7004  192.168.88.166:7005 192.168.88.166:7006                 --redis5.0以下版本集群启动方式,redis-trib.rb在src目录下
./redis-cli  --cluster create  --cluster-replicas  1  192.168.88.166:7001  192.168.88.166:7002 192.168.88.166:7003  192.168.88.166:7004  192.168.88.166:7005 192.168.88.166:7006   --redis5.0后版本集群启动方式

 

say:yes 表示同意上述配置

 主从配置已经完成.

集群验证

输入任意一个节点地址,建议主节点

/opt/redis-3.2.4/src/redis-cli -h 192.168.88.166 -c -p 7002

进入客户端后, 通过cluster nodes命令查看 集群状态:

 我们存入test数据, 切换节点查看, 测试通过.大功告成

 

posted @ 2023-05-21 01:19  阿锋888  阅读(894)  评论(0编辑  收藏  举报