redis安装和搭建集群

  • centOs7/8 yum安装
  • 下面命令是安装老版本
  • 也可以指定版本安装
  • 安装完成后查看redis版本
  • 修改redis配置文件
  • 服务常用的操作conOs7/8
  • 服务常用的操作conOs6.9
  • 手动安装redis
  • 配置自启动 编写启动脚本
  • 内容如下:
  • 设置文件权限
  • 启动测试
  • 注意:如果是服务先启动在修改的redis.conf需要重启服务
  • 集群搭建
  • 搭建集群需要6个节点实现三从三主,因此我们模拟6台机器
  • 删除集群
  • 添加节点进集群
  • 主节点
  • 从节点
  • 分配槽位


centOs7/8 yum安装

下面命令是安装老版本

yum install redis

也可以指定版本安装

#安装仓库
yum install -y http://rpms.famillecollet.com/enterprise/remi-release-8.rpm
#查看仓库里面redis的版本
yum install -y http://rpms.famillecollet.com/enterprise/remi-release-8.rpm
#安装指定版本
yum --enablerepo=remi install redis-版本号 -y
如下:
yum --enablerepo=remi install redis-6.0.6 -y

我觉得两者没什么区别

安装完成后查看redis版本

redis-cli --version
或
redis-server --version

修改redis配置文件

#此命令用来查找redis配置文件的位置
find / -name "redis.conf"
#查找到路径后
vim /文件路径/redis.conf

#修改里面的一些内容如下:
     注意文本可以用  /bind 快速查找内容
     :set hlsearch  查找的文本高亮显示
     :set nohlsearch        不高亮
  按 i 进入编辑  
bind 看下面的图片查找出ip复制过去就行

requirepass  ""        //密码可有可无随意就行

protected-mode no          //保护模式默认是yes

修改完成 按Esc 退出编辑 
:wq 保存并退出
:q    不保存

#完成后启动服务 命令如下:
systemctl start redis
服务器开机启动 命令如下:
systemctl enable redis

如果是centOs6.9
service start redis     //启动服务 
服务器开机启动 命令如下:
chkconfig redis on

#连接redis
redis-cli -h 192.168.0.11 -p 6379      //-h=bind这个的ip   -p=端口

exit可以退出连接

redis5集群搭建 redis集群搭建和使用_Redis

服务常用的操作conOs7/8

// 服务状态
 systemctl status redis
// 服务启动
 systemctl start redis
// 服务停止
 systemctl stop redis
// 服务重启
 systemctl restart redis

服务常用的操作conOs6.9

// 服务状态
 service redis status
// 服务启动
 service redis start
// 服务停止
 service redis stop
// 服务重启
 service redis restart

到此 需要开放 6379 端口:
建议用宝塔操作方便简单
如果要使用命令如下:

firewall-cmd --zone=public --add-port=6379/tcp --permanent //开放6379端口
firewall-cmd --reload //刷新配置

注意:如果是云服务器则安全组也需放行6379端口

手动安装redis

#进入根目录
 cd /
#创建文件夹
 mkdir redis
#进入创建的文件夹
 cd redis
#下载压缩包
 wget https://download.redis.io/releases/redis-6.2.2.tar.gz
#解压
 tar xzf redis-6.2.2.tar.gz
#进入
 cd redis-6.2.2
#编译
 make 

注意:先修改redis.conf修改的内容上面有 多加一个
daemonize为yes               //守护进程开启。

#启动服务
src/redis-server            //此时这个窗口动不了,需要新开一个窗口
#连接redis
src/redis-cli

exit可以退出连接

配置自启动 编写启动脚本

vi /etc/init.d/redis

内容如下:

#!/bin/bash
#
# kconfig: 2345 10 90  
# description: Start and Stop redis   
PATH=/usr/local/bin:/sbin:/usr/bin:/bin
REDISPORT=6379
EXEC=/opt/redis/redis-6.2.2/src/redis-server            //自己安装的路径 redis-server 不需要变
REDIS_CLI=/opt/redis/redis-6.2.2/src/redis-cli          //自己安装的路径 redis-cli 不需要变
PIDFILE=/var/run/redis_6379.pid                              
CONF="/opt/redis/redis-6.2.2/redis.conf"                //自己安装的路径 redis.conf 不需要变
# AUTH="1234"
case "$1" in
        start)
                if [ -f $PIDFILE ]
                then
                        echo "$PIDFILE exists, process is already running or crashed."  
                else
                        echo "Starting Redis server..."  
                        $EXEC $CONF
                fi
                if [ "$?"="0" ]
                then
                        echo "Redis is running..."  
                fi
                ;;
        stop)
                if [ ! -f $PIDFILE ]
                then
                        echo "$PIDFILE exists, process is not running."  
                else
                        PID=$(cat $PIDFILE)
                        echo "Stopping..."  
                       $REDIS_CLI -p $REDISPORT  SHUTDOWN
                        sleep 2
                       while [ -x $PIDFILE ]   
                       do
                                echo "Waiting for Redis to shutdown..."  
                               sleep 1
                        done
                        echo "Redis stopped"  
                fi
                ;;
        restart|force-reload)
                ${0} stop
                ${0} start
                ;;
        *)
               echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2
                exit 1
esac

写完后按 Esc 然后 :wq保存

设置文件权限

chmod 755 /etc/init.d/redis

启动测试

/etc/init.d/redis start

成功后会有下面信息:
Starting Redis server...
Redis is running...

然后就可以使用redis-cli测试了

注意:如果是服务先启动在修改的redis.conf需要重启服务

fuser -n tcp 6379 //查看进程id
kill 进程id //杀死进程
然后启动服务:
/etc/init.d/redis start**

集群搭建

搭建集群需要6个节点实现三从三主,因此我们模拟6台机器

#进入根目录
cd /
#创建文件夹
mkdir myredis
#进入目录
cd myredis
#创建多个文件夹
mkdir redis7000 redis7001 redis7002 redis7003 redis7004 redis7005

#复制一份redis配置文件要是不知道配置文件位置 使用 find / -name "redis.conf" 查看位置
cp /文件路径/redis.conf /myredis/redis7000/
#修改配置文件
vim /myredis/redis7000/redis.conf
 修改内容如下:Esc退出编辑使用  /port 查找起来会比较快
   port 7000
   pidfile  /var/run/redis_7000.pid                         //和端口统一比较好
   dir   /myredis/redis7000                                //这个路径是我们上面创建的路径
   cluster-enabled yes
   cluster-config-file nodes-7000.conf                     //和端口统一比较好
   cluster-node-timeout 5000
   cluster-replica-validity-factor 10
   cluster-migration-barrier 1 
   cluster-require-full-coverage yes
   cluster-replica-no-failover no

#修改完后使用以下命令复制:
sed "s/7000/7001/g" /myredis/redis7000/redis.conf > /myredis/redis7001/redis.conf
sed "s/7000/7002/g" /myredis/redis7000/redis.conf > /myredis/redis7002/redis.conf
sed "s/7000/7003/g" /myredis/redis7000/redis.conf > /myredis/redis7003/redis.conf
......6个节点需要6次以此类推
sed "s/把7000/替换成7001/g" /myredis/redis7000/redis.conf > /myredis/redis7001/redis.conf  
//解释一下,所以上面说和端口统一比较好,好处就在这不用一个一个改

现在启动6个服务:
/usr/bin/redis-server  /myredis/redis7000/redis.conf
/usr/bin/redis-server  /myredis/redis7001/redis.conf
/usr/bin/redis-server  /myredis/redis7002/redis.conf
......以此类推6次
或者
redis-server  /myredis/redis7000/redis.conf
redis-server  /myredis/redis7001/redis.conf
redis-server  /myredis/redis7002/redis.conf
......以此类推6次

然后就是搭建集群命令:
redis-cli --cluster create bind里面设置的ip:端口192.168.0.11:7001 192.168.0.11:7002 
192.168.0.11:7003 192.168.0.11:7004 192.168.0.11:7005 --cluster-replicas 1
//redis-cli --cluster help 这个是帮助手册

出现如图那么恭喜你搭建好了

redis5集群搭建 redis集群搭建和使用_重启_02


连接

redis-cli -h bind的ip -p 端口 -c //-c 代表集群模式连接

查看

cluster nodes

redis5集群搭建 redis集群搭建和使用_Redis_03


提示master表示主节点,slave表示从节点,myself表示当前连接的节点

如图所示便OK了

注意:如果redis客户端需要连接,则需要开放宝塔端口
7000,7001,7002,7003 等
还有+10000的端口比如:17000,17001 等 就是上面用到的端口都需要开放
如果是云服务器安全组也需要放行这些端口

删除集群

先将服务停止,查看服务

#查看服务
ps -ef | grep redis

#批量杀死进程id
ps -ef | grep redis | cut -c 9-17 | xargs kill            //9-17 刚好是进程id

删除每个节点对应的集群文件

#最好先使用
find / -iname "node*.conf"    //查看是不是直接需要删除的文件以免误删除

#批量删除
find / -iname "node*.conf" -delete

#删除      .rdb的文件
find / -iname "*.rdb"

#因为有多余文件所以只能一个一个删除
rm /myredis/redis7000/dump.rdb

添加节点进集群

主节点

redis-cli --cluster add-node 192.168.0.11:7006 192.168.0.11:7001 
//redis-cli --cluster add-node 要添加的机器 192.168.0.11:7001  //因为他们已经是一个集群了所以也可以是192.168.0.11:7002

从节点

redis-cli --cluster add-node 192.168.0.11:7007 192.168.0.11:7001  --cluster-slave --cluster-master-id 主节点id
//redis-cli --cluster add-node 要添加的机器 集群里面的任意一个  --cluster-slave --cluster-master-id 刚刚加入的主节点的id,因为是一主一从

redis5集群搭建 redis集群搭建和使用_重启_04

分配槽位

因为没有槽位他不会算在集群里面

redis-cli --cluster reshard 192.168.0.11:7006

redis5集群搭建 redis集群搭建和使用_重启_05


redis5集群搭建 redis集群搭建和使用_redis_06

回车就完成了