linux安装redis集群

安装了一下 redis的相关集群配置 发现问题还是挺多的。

注:本文中使用的服务器为阿里云centos7版本 

1.安装redis 单机版 

//安装redis 

yum -y install redis  启动命令 redis-server &

2. redis集群

    2.1. 集群原理   

    2.1.1.   redis-cluster架构图

    

    

架构细节:

(1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽.

(2)节点的fail是通过集群中超过半数的节点检测失效时才生效.

(3)客户端与redis节点直连,不需要中间proxy.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可

(4)redis-cluster把所有的物理节点映射到[0-16383]slot,cluster 负责维护node<->slot<->value

Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value 时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点


2.1.2.   redis-cluster投票:容错



3.1. ruby环境

redis集群管理工具redis-trib.rb依赖ruby环境,首先需要安装ruby环境:

安装ruby

yum install ruby

yum install rubygems

安装ruby和redis的接口程序 具体资料(链接:https://pan.baidu.com/s/1UthfYzctmKMkoeJephg1ZQ 密码:kzjc)

拷贝redis-3.0.0.gem至/usr/local下(或者 /usr/local/develope/redisGem下)

执行:

gem install /usr/local/redis-3.0.0.gem(install后为gem文件放置路径)

redis 节点配置

同一台服务器用不同端口表示不同的redis服务器

在/usr/local/develope/(个人习惯)下创建redis-cluster目录,其下创建7001、7002。。7006目录 如图

·

将/etc目录下 redis-cli redis-server redis.conf 分别复制到上图所创建目录中7001 7002.....7006

 

redis.conf 文件文件没有可以使vim 创建一个 命令 vim redis.conf创建 

redis.conf常用配置

#端口配置
port 7001 
#启动守护进程
appendonly yes 
#启动集群
cluster-enabled yes
cluster-config-file "nodes.conf"
#设置超时
cluster-node-timeout 5000
logfile "./out.log"
#指定访问ip地址 

bind 0.0.0.0 

分别在7001.7002 ...7006 文件夹中 修改 redis.conf   修改port 为7001 7002..7006

上述步骤完成后 进行启动每个 redis 启动命令 为 ./redis-server ./redis.conf &(注意两点1,分别在7001--7006文件夹进行启动  2.启动命令 一定要加上& 命令为:./redis-server ./redis.conf &  配置后台启动 否则退出窗口 redis服务就停止了 )

启动完成后可以使用 netstat -tnulp | grep redis和ps  aux | grep redis查看redis运行情况 


这样的 就6个redis都启动了  yeah 

实际上,Redis集群的操作在后文你可以看到是通过Ruby脚本来完成的,因此我们需要安装Ruby相关的RPM包,以及Redis和Ruby的接口包。我们要用到之前安装的Ruby (同样链接:https://pan.baidu.com/s/1UthfYzctmKMkoeJephg1ZQ 密码:kzjc 这里面可以下载到)


解压redis-3.0.0.tar.gz目录下的src中可以找到 


上传到 redis-cluster目录下 (7001---7006 文件夹都在这里面)


redis-cluster 目录下

执行redis-trib.rb,此脚本是ruby脚本,它依赖ruby环境。

./redis-trib.rb  create --replicas  1  127.0.0.1:7001  127.0.0.1:7002  127.0.0.1:7003  127.0.0.1:7004  127.0.0.1:7005  127.0.0.1:7006

说明:

redis集群至少需要3个主节点,每个主节点有一个从节点总共6个节点

replicas指定为1表示每个主节点有一个从节点

 

注意:

如果执行时报如下错误:

[ERR]Node XXXXXX is not empty. Either the node already knows other nodes (check withCLUSTER NODES) or contains some key in database 0

解决方法是删除生成的配置文件nodes.conf,如果不行则说明现在创建的结点包括了旧集群的结点信息,需要删除redis的持久化文件后再重启redis,比如:appendonly.aof、dump.rdb

启动成功后的输出 (由于已经启动过 没有保存相关日志 所以借个图用下 )

 


redis-cluster重新执行 

./redis-trib.rb create --replicas 1 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006

输出日志 为 ()


选择yes节点配置更新后结果如下


集群创建成功登陆任意redis结点查询集群中的节点情况。

客户端以集群方式登陆:

cluster info 查询集群状态信息


完工后测试下 


大功告成  另外 redis桌面管理工具 上面网盘中已经有 

博文中参考文档为https://www.cnblogs.com/xuliangxing/p/7146868.html

2. 淘淘商城文档

猜你喜欢

转载自blog.csdn.net/a15835774652/article/details/80097594