简洁的 redis 单机 与 集群安装
Redis 简介
Redis 集群是3.0之后才引入的,在3.0之前,使用哨兵(sentinel)来监控各个节点之间的状态。Redis 集群可谓是让很多人久等了。
Redis 集群是一组能进行数据共享的Redis 实例(服务或者节点)的设施,集群可以使用的功能是普通单机 Redis 所能使用的功能的一个子集;Redis 集群通常具有高可用、可扩展性、分布式、容错等特性。了解redis的集群后,这些晦涩的概念可结合redis的主从、集群分区和集群运维等角度理解体会。
解压
tar zxvf redis-4.0.1.tar.gz
进行编译
cd redis-4.0.1
make
安装redis
cd src
make instal PREFIX=/usr/local/lib/redis #把Redis安装到/usr/local/lib/redis中
如果这里安装失败,说明没gcc和tcl,确保两个都安装上。
首先为了方便管理,将redis-4.0.1文件中的conf配置移动到安装目录下
i、创建文件夹
mkdir -p /usr/local/lib/redis/etc
ii、移动文件
cp redis-trib.rb /usr/local/lib/redis/bin #集群搭建工具
cd ..
cp redis.conf /usr/local/lib/redis/etc
到此,redis单机版已经安装完毕。
开始集群安装之前,需要知道,要让集群正常运作至少需要三个主节点(master),对于从节点(slave)没有要求,但是为了保证数据的零丢失,所以在设置从节点的数量应当是:slave个数 >= master个数。 这样做的好处就是,当某一个master宕机的时候,每个master都至少有一个slave作为备份,redis会推选依附这个master的slave来顶替主节点的工作。但是这个slave又宕机掉的话,那么这个时候没有依附这个节点的从节点了,那么整个集群真的就挂掉了。不过在刚开始试用集群功能时, 强烈建议使用六个节点: 其中三个为主节点, 而其余三个则是各个主节点的从节点。
开始集群安装
集群环境
192.168.66.2
192.168.66.3
创建集群配置文件目录,并复制配置文件
到安装好的单机版本的redis目录下创建集群配置文件夹
cd /usr/local/lib/redis
mkdir cluster
cd cluster
mkdir 7000 7001 7002
cp ../etc/redis.conf 7000/
cp ../etc/redis.conf 7001/
cp ../etc/redis.conf 7002/
修改配置文件
port 7000 # 端口7000,7002,7003
bind 192.168.66.2 # 默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群
daemonize yes # redis后台运行
pidfile /var/run/redis_7000.pid # pidfile文件对应7000,7001,7002
cluster-enabled yes # 开启集群 把注释#去掉
cluster-config-file nodes_7000.conf # 集群的配置 配置文件首次启动自动生成 7000,7001,7002
cluster-node-timeout 15000 # 请求超时 默认15秒,可自行设置
appendonly yes # aof日志开启 有需要就开启,它会每次写操作都记录一条日志
appendfilename "appendonly.aof" # aof文件路径
其余两个配置文件也都修改成对应的配。
使用scp命令,把redis复制到其他节点。
scp -r ehui@192.168.66.2:/usr/local/lib/redis /usr/local/lib
把cluster目录下改为7003、7004、7005,对应的配置文件也按照这个规则修改即可。
启动redis的服务
bin/redis-server cluster/7000/redis.conf
bin/redis-server cluster/7001/redis.conf
bin/redis-server cluster/7002/redis.conf
bin/redis-server cluster/7003/redis.conf
bin/redis-server cluster/7004/redis.conf
bin/redis-server cluster/7005/redis.conf
这个时候我们查看一下进程看启动情况。
ps -ef | grep redis
这里我们只是开启了6个redis进程而已,它们都还只是独立的状态,还么有组成集群这里我们使用官方提供的工具redis-trib.rb进行集群的链接,不过这个工具是用ruby写的,要先安装ruby的环境
在192.168.66.2下安装ruby环境(安装好的可以跳过这一步)
离线安装:
tar -xvzf ruby-2.4.0.tgz
cd ruby-2.4.0
./configure
make
sudo make install
#配置环境变量
vi /etc/profile
# 加入指令
export RUBY_HOME=/usr/local/lib/ruby
export PATH=$RUBY_HOME/bin:$PATH
source /etc/profile # 环境立即生效
在线安装:
yum install -y crul
curl -L get.rvm.io | bash -s stable
如果失败,按提示操作:先生成密钥
curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -
再输入
curl -L get.rvm.io | bash -s stable
source /usr/local/rvm/scripts/rvm #使rvm立即生效
rvm list known #查看当前可用ruby版本
rvm install 2.4.0 #安装ruby 2.4.0
rvm use 2.4.0 #使用2.4.0版本
检查是否安装成功:
ruby --version
安装ruby和redis的连接
gem install redis
链接集群
./redis-trib.rb create --replicas 1 192.168.66.2:7000 192.168.66.2:7001 192.168.66.2:7002 192.168.66.3:7003 192.168.66.3:7004 192.168.66.3:7005
测试
./redis-cli -h 192.168.66.2 -c -p 7000 #进入集群
set name value #设置名字为name的值
get name #获取名字为name的值
#性能测试
redis-benchmark -h 127.0.0.1 -p 6379 -t set,lpush -n 10000 -q
到此,redis集群安装完成。
总结,安装过程中,时不时会遇到一些小问题,但是主要还是ruby环境安装的时候,看了很多的博客,在线安装ruby时时,都是一笔带过,但是我却碰到了很多问题,耽误了许多时间,但还好都解决了。在这里非常感谢其他博客提供的参考。
感恩之心,珍惜当下。人生最重要的时刻就是现在。