Redis集群搭建与简单使用

一、介绍安装环境与版本

用3台虚拟机模拟6个节点,实现集群目标:

redis 采用 redis-4.0.14.tar.gz 版本
M: 192.168.0.183:7000 192.168.0.184:7000 192.168.0.185:7000
S: 192.168.0.184:7001 192.168.0.185:7001 192.168.0.183:7001

二、安装过程

  1. 下载并解压
    下载位置
    http://download.redis.io/releases

编译安装命令:

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

三、创建redis集群节点 配置文件和存储目录

cd /usr/local/
mkdir redis_cluster  //创建集群目录
mkdir -p 7001/data   //创建7000和7000/data目录  分别对应集群三个节点
mkdir -p 7002/data   //创建7000和7000/data目录  分别对应集群三个节点
//创建7001节点为例,拷贝到7000目录
cp /usr/local/redis-4.0.14/redis.conf  ./redis_cluster/7001/redis.conf
//拷贝到7002目录
cp /usr/local/redis-4.0.14/redis.conf  ./redis_cluster/7002/redis.conf   

四、修改 700X/redis.conf 的相应配置

1、redis后台运行,修改为yes
	daemonize    yes    
2、修改对应端口信息,端口对应为7000,7001                   
	port  xxxx  
3、开启集群  把注释#去掉                              
	cluster-enabled  yes 
4、集群的配置  配置文件首次启动自动生成 7000,7001                     
	cluster-config-file  /usr/local/redis_cluster/7001/data/nodes_xxxx.conf  
5、请求超时  设置5秒够了   
	cluster-node-timeout  5000  
6、aof日志开启  有需要就开启,它会每次写操作都记录一条日志              
	appendonly  yes 
7、pid文件保存                          
	pidfile /var/run/redis_xxxx.pid  
8、工作目录         
	dir /usr/local/redis-cluster/xxxx         
9、允许访问IP
	bind 0.0.0.0
10、log输出目录
	logfile "/redis_cluster/XXXX(端口号)/logs/redis.log"

以上配置中redis .conf  xxxx 就代表对应的端口号!

五、启动redis集群节点

cd /usr/local
redis-server  redis_cluster/7001/redis.conf
redis-server  redis_cluster/7002/redis.conf

进入指定端口redis:redis-cli -p 7001
很简单 只要运行 redis可执行文件,然后指定我们直接写好的配置文件就好了
运行成功 后netstat -anop |grep redis 看看是否成功运行了,如果成功了就没问题了

六、安装ruby环境,运行redis-trib.rb 文件

之前的操作我们只是创建了 6个redis 集群的节点,但是他们并没有结合起来了,官方 提供了 ruby脚本,很简单的配置一下就能 结合起来 
使用redis-trib.rb启动集群,需要安装以下三个包:ruby-2.6.4.tar、rubygems-3.0.6.tgz、redis-4.1.3.gem
链接:https://pan.baidu.com/s/1eRsvjgDOLl70WN19Xy8HzA
提取码:6l9x

1、安装ruby:
	tar -zxvf ruby-2.6.4.tar.gz
	cd ruby-2.4.3
	./configure
	make
	make install
2、安装rubygems-3.0.6.tgz
	ruby setup.rb
3、安装redis-4.1.3.gem
	gem install -l ./redis-3.2.1.gem

创建集群
Redis 官方提供了 redis-trib.rb 这个工具,就在解压目录的 src 目录中,使用下面这个命令即可完成安装。

redis-trib.rb  create  --replicas  1  192.168.0.183:7000   192.168.0.184:7000    192.168.0.185:7000 192.168.0.184:7001   192.168.0.185:7001   192.168.0.183:7001

到此我们的集群就搭建完成了,我们 随意连接 上面六个 redis 节点的地址,都能够 连接到这个集群。

参考博客:https://www.imooc.com/article/278021

集群理解
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 。

需要注意的是:必须要3个或以上的主节点,否则在创建集群时会失败,并且当存活的主节点数小于总节点数的一半时,整个集群就无法提供服务了。

你可能感兴趣的:(redis,redis)