热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Redis5.0.4集群(单机版)搭建

最近尝试搭建了一下redis集群,这里记录一下,最后附上的是参考的博客地址。安装C语言编译环境GCCyuminstall-ygcc-c++下载redis并编译安装下载:wgetht

最近尝试搭建了一下redis集群,这里记录一下,最后附上的是参考的博客地址。



  1. 安装C语言编译环境GCC

    yum install -y gcc-c++



  2. 下载redis并编译安装




下载:

wget https://download.redis.io/releases/redis-5.0.4.tar.gz

解压到指定目录:

tar -zxf redis-5.0.4.tar.gz -C /opt/tools

编译源码:

cd /opt/tools/redis-5.0.4
make

安装并通过 PREFIX 指定安装目录

make install PREFIX=/opt/tools/redis

修改配置

  • 拷贝redis-5.0.4/redis.conf配置文件到redis安装目录的bin目录

cp redis.conf /opt/tools/redis/bin


  • 进入/opt/tools/redis/bin目录,修改redis.conf文件

vim redis.conf


  • redis.conf文件示例

#绑定ip,若需要外网访问,需指定固定ip
bind 127.0.0.1
#端口,默认6379,集群时每个配置都需要不同
port 7001
# Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程
# 启用守护进程后,Redis会把pid写到一个pidfile中,在/var/run/redis.pid
daemonize yes
#当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定,集群时加上端口号
pidfile /var/run/redis_7001.pid
#指定日志文件,目录自己指定,集群时文件名带端口号
logfile "/var/log/redis/logs/redis_7001.log"
#开启AOF模式
appendonly yes
#开实例的集群模式
cluster-enabled yes
#集群配置文件,带端口号
cluster-config-file nodes-7001.conf
#节点能够失联的最大时间
cluster-node-timeout 15000


  1. 创建6个redis实例(6个节点)



  • 在usr/local目录下新建redis-cluster目录,用于存放集群节点


  • 把redis目录下的bin目录下的所有文件复制到/usr/local/redis-cluster/redis01目录下,不用担心这里没有redis01目录,会自动创建的。操作命令如下(注意当前所在路径):

    cp -r redis/bin/ redis-cluster/redis01

  • 将redis-cluster/redis01文件复制5份到redis-cluster目录下(redis02-redis06),创建6个redis实例,模拟Redis集群的6个节点。然后将其余5个文件下的redis.conf里面的端口号分别修改为7002-7006,带端口的参数也需要一起修改(pidfile、logfile、cluster-config-file)。




  1. 创建执行脚本



  • start-all.sh (启动redis实例)

cd redis01
rm -rf dump.rdb nodes.conf nodes-7001.conf
./redis-server redis.conf
cd ..
cd redis02
rm -rf dump.rdb nodes.conf nodes-7002.conf
./redis-server redis.conf
cd ..
cd redis03
rm -rf dump.rdb nodes.conf nodes-7003.conf
./redis-server redis.conf
cd ..
cd redis04
rm -rf dump.rdb nodes.conf nodes-7004.conf
./redis-server redis.conf
cd ..
cd redis05
rm -rf dump.rdb nodes.conf nodes-7005.conf
./redis-server redis.conf
cd ..
cd redis06
rm -rf dump.rdb nodes.conf nodes-7006.conf
./redis-server redis.conf
cd ..


  • create-cluster.sh (创建集群,根据需要将127.0.0.1换成对应ip)

cd redis01/
./redis-cli --cluster create --cluster-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
cd ../


  • shutdown.sh (停止redis实例,根据需要将127.0.0.1换成对应ip)

: <SHUTDOWN 命令执行以下操作:
停止所有客户端
如果有至少一个保存点在等待,执行 SAVE 命令
如果 AOF 选项被打开,更新 AOF 文件
关闭 redis 服务器(server)
如果持久化被打开的话, SHUTDOWN 命令会保证服务器正常关闭而不丢失任何数据。
SHUTDOWN SAVE: 会强制让数据库执行保存操作,即使没有设定(configure)保存点.
SHUTDOWN NOSAVE: 会阻止数据库执行保存操作,即使已经设定有一个或多个保存点(你可以将这一用法看作是强制停止服务器的一个假想的 ABORT 命令).
COMMENTBLOCK
cd redis01
echo "Stopping 7001"
./redis-cli -h 127.0.0.1 -p 7001 shutdown save
echo "Stopping 7002"
./redis-cli -h 127.0.0.1 -p 7002 shutdown save
echo "Stopping 7003"
./redis-cli -h 127.0.0.1 -p 7003 shutdown save
echo "Stopping 7004"
./redis-cli -h 127.0.0.1 -p 7004 shutdown save
echo "Stopping 7005"
./redis-cli -h 127.0.0.1 -p 7005 shutdown save
echo "Stopping 7006"
./redis-cli -h 127.0.0.1 -p 7006 shutdown save
cd ..


  1. 另外提供一种快速搭建方式(通过命令的形式传入参数,redis.conf文件实际未更新):

    1.编辑/utils/create-cluster/create-cluster 文件,更改起始/结束端口,指定ip等(不指定默认127.0.0.1)。

    2.使用“./create-cluster start”运行实例。

    3.使用“./create-cluster create”创建一个Redis集群。

    4.使用“./create-cluster stop”停止所有实例



  2. 参考文档:

    集群搭建:(redis5.0版本之后可以直接使用 redis-cli 命令创建集群,不使用 redis-trib.rb 命令了)

    https://blog.csdn.net/qq_42815754/article/details/82912130

    https://blog.51cto.com/34144451/3773596

    快速搭建方式:

    https://blog.csdn.net/qq_39308071/article/details/119087156





推荐阅读
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • 2021最新总结网易/腾讯/CVTE/字节面经分享(附答案解析)
    本文分享作者在2021年面试网易、腾讯、CVTE和字节等大型互联网企业的经历和问题,包括稳定性设计、数据库优化、分布式锁的设计等内容。同时提供了大厂最新面试真题笔记,并附带答案解析。 ... [详细]
  • 面试经验分享:华为面试四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试
    最近有朋友去华为面试,面试经历包括四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试。80%的人都在第一轮电话面试中失败,因为缺乏基础知识。面试问题涉及 ... [详细]
  • Redis的默认端口、数据库使用和多端口配置
    本文介绍了Redis的默认端口、数据库使用和多端口配置的方法。通过选择不同的数据库和使用flushdb命令可以实现对不同数据库的访问和清除数据。同时,本文还介绍了在同一台机器上启用多个Redis实例的方法,并讨论了配置认证密码的步骤和注意事项。 ... [详细]
  • Annotation的大材小用
    为什么80%的码农都做不了架构师?最近在开发一些通用的excel数据导入的功能,由于涉及到导入的模块很多,所以开发了一个比较通用的e ... [详细]
  • Ansibleplaybook roles安装redis实例(学习笔记二十九)
    1、相关redis参数:2、templatesredis.conf配置相关参数:daemonizeyespidfilevarrunredis_{{red ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 本文介绍了作者在开发过程中遇到的问题,即播放框架内容安全策略设置不起作用的错误。作者通过使用编译时依赖注入的方式解决了这个问题,并分享了解决方案。文章详细描述了问题的出现情况、错误输出内容以及解决方案的具体步骤。如果你也遇到了类似的问题,本文可能对你有一定的参考价值。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 【爬虫】关于企业信用信息公示系统加速乐最新反爬虫机制
    ( ̄▽ ̄)~又得半夜修仙了,作为一个爬虫小白,花了3天时间写好的程序,才跑了一个月目标网站就更新了,是有点悲催,还是要只有一天的时间重构。升级后网站的层次结构并没有太多变化,表面上 ... [详细]
  • [翻译]PyCairo指南裁剪和masking
    裁剪和masking在PyCairo指南的这个部分,我么将讨论裁剪和masking操作。裁剪裁剪就是将图形的绘制限定在一定的区域内。这样做有一些效率的因素࿰ ... [详细]
author-avatar
ii贵妇狗_156
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有