编译安装

#下载源代码解压
wget https://download.redis.io/releases/redis-5.0.13.tar.gz -P /home/
tar -xvf /home/redis-5.0.13.tar.gz -C /home
cd /home/redis-5.0.13 #You can use `make PREFIX=/some/other/directory install` if you wish to use a different destination.
mkdir -p /usr/local/redis/{etc,logs,data,run}
make PREFIX=/usr/local/redis install #In order to install Redis binaries into /usr/local/bin just use:
make install cp redis.conf /usr/local/redis/etc/

用户及权限

使用redis用户启动程序

useradd redis -s /sbin/nologin

chown -R redis.  /usr/local/redis/

管理脚本

可使用源码包中的脚本初始化init.d,也可用更方便的systemctl

systemctl 管理

cat > /usr/lib/systemd/system/redis.service <<EOF
[Unit]
Description=Redis persistent key-value database
After=network.target
After=network-online.target
Wants=network-online.target

[Service]
#ExecStart=/usr/bin/redis-server /etc/redis.conf --supervised systemd
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf --supervised systemd
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
Type=notify
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755

[Install]
WantedBy=multi-user.target

EOF

init.d脚本

使用源码包中的install_server.sh进行初始化

utils/install_server.sh

/etc/init.d/redis_6379  stop|start|restart

处理三个警告

/etc/sysctl.conf

net.core.somaxconn = 512

# backlog参数控制的是三次握手的时候server端收到client ack确认号之后的队列值

vm.overcommit_memory = 1
0、表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存
申请失败,并把错误返回给应用进程。
1、表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
2、表示内核允许分配超过所有物理内存和交换空间总和的内存

echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled'  >>/etc/rc.d/rc.local

chmod a+x  /etc/rc.d/rc.local

#大页内存动态分配,需要关闭让redis 负责内存管理

集群

创建集群的前提条件

1.每个redis node节点采用相同的硬件配置、相同的密码、相同的redis版本。
2.每个节点必须开启的参数
cluster-enabled yes #必须开启集群状态,开启后redis 进程会有cluster显示
cluster-config-file nodes-6380.conf #此文件有redis cluster集群自动创建和维护,不需要任何手动操作
3.所有redis服务器必须没有任何数据
4.先启动为单机redis且没有任何key value

redis3/4版本

需要使用到集群管理工具redis-trib.rb,这个工具是redis官方推出的管理redis集群的工具,集成在redis的源码src目录下,是基于redis提供的集群命令封装成简单、便捷、实用的操作工具,redis-trib.rb是redis作者用ruby开发完成的,centos 系统yum安装的ruby存在版本较低问题,使用源码编译安装ruby。

 gem install redis

#如果无法在线安装,可以下载reids模块安装包离线安装
#https://rubygems.org/gems/redis #先下载redis模块安装包
#gem install -l redis-3.3.0.gem #安装redis模块 #修改密码redis 登录密码
/usr/local/lib/ruby/gems/2.5.0/gems/redis-4.1.0/lib/redis/client.rb

创建集群

redis-trib.rb create --replicas 1 10.0.0.3:6379 10.0.0.4:6379 10.0.0.5:6379 10.0.0.6:6379 10.0.0.7:6379 10.0.0.8:6379

redis5版本

redis-cli --cluster create 10.0.0.3:6379 10.0.0.4:6379 10.0.0.5:6379 10.0.0.6:6379 10.0.0.7:6379 10.0.0.8:6379 --cluster-replicas 1 

清空数据及重置集群

如果操作导致Redis集群创建报错,可执行清空数据和集群命令
127.0.0.1:6379> FLUSHALL
OK
127.0.0.1:6379> cluster reset
OK

扩容,新加服务器

增加Redis node节点,需要与之前的Redis node版本相同、配置一致,然后分别启动两台Redis node,一主一从。

1、添加节点到集群

#redis 4
redis-trib.rb add-node 10.0.0.10:6379 10.0.0.11:6379 #redis 5
redis-cli --cluster add-node 10.0.0.10:6379 10.0.0.11:6379

2、更改新加节点slave/master状态

需要手动将其指定为某个master的slave,否则其默认角色为master。

 #要设置哪台为slave,则登陆该台。查看当前集群节点,找到目标master 的ID
10.0.0.11:6379> CLUSTER NODES #将其设置为slave,命令格式为cluster replicate MASTERID
10.0.0.11:6379>CLUSTER REPLICATE 986338acd50c3015be68a760502b238f4509882d

3、重新分配slot槽位

#redis 4
#查看当前状态
redis-trib.rb check 10.0.0.3:6379 redis-trib.rb reshard 10.0.0.11:6379 #redis 5
redis-cli --cluster reshard 10.0.0.11:6379

redis编译安装、哨兵、集群的更多相关文章

  1. Redis集合 安装 哨兵集群 配置

    redis相关 redis基础 redis发布订阅 redis持久化RDB与AOF redis不重启,切换RDB备份到AOF备份 redis安全配置 redis主从同步 redis哨兵集群 redis ...

  2. 阿里云ECS部署Redis主备哨兵集群遇到的问题

    一.部署 详细部署步骤:https://blog.csdn.net/lihongtai/article/details/82826809 Redis5.0版本需要注意的参数配置:https://www ...

  3. C#两大知名Redis客户端连接哨兵集群的姿势

    前言 前面利用<Docker-Compose搭建Redis高可用哨兵集群>, 我们的思路是将Redis.Sentinel.Redis Client App链接到同一个网桥网络,这个网桥内的 ...

  4. Redis单机安装以及集群搭建

    今天主要来看一下Redis的安装以及集群搭建(我也是第一次搭建). 环境:CentOS 7.1,redis-5.0.7 一.单机安装 1.将Redis安装包放置服务器并解压 2.进入redis安装目录 ...

  5. redis系列--深入哨兵集群

    一.前言 在之前的系列文章中介绍了redis的入门.持久化以及复制功能,如果不了解请移步至redis系列进行阅读,当然我也是抱着学习的知识分享,如果有什么问题欢迎指正,也欢迎大家转载.而本次将介绍哨兵 ...

  6. Redis自动化安装以及集群实现

    Redis实例安装 安装说明:自动解压缩安装包,按照指定路径编译安装,复制配置文件模板到Redis实例路的数据径下,根据端口号修改配置文件模板 三个必须文件:1,配置文件,2,当前shell脚本,3, ...

  7. linux下redis的安装和集群搭建

    一.redis概述 1.1.目前redis支持的cluster特性: 1):节点自动发现. 2):slave->master 选举,集群容错. 3):Hot resharding:在线分片. 4 ...

  8. CentOS6.3编译安装Memcached集群分布式缓存代理Magent-0.6出错汇总

    参考文章:Memcached集群/分布式/高可用 及 Magent缓存代理搭建过程 详解,搭建Magent,在编译的过程中会出现很多错误: #编译安装安装magent到 /usr/local/mage ...

  9. Redis Sentinel哨兵集群

    Redis Sentinel(哨兵集群)是一种高可用的redis部署方案.在集群中的redis-master服务挂掉时,无需人为干预,即可通过哨兵集群的自我调整,实现redis服务的持续可用. 哨兵集 ...

随机推荐

  1. Mybatis-技术专区-如何清晰的解决出现「多对一模型」和「一对多模型」的问题

    前提介绍 在mybatis如何进行多对一.一对多(一对一)的多表查询呢?本章带你认识如何非常顺滑的解决! 基础使用篇 一对一 association association通常用来映射一对一的关系,例 ...

  2. linux centos7 命令中的 2>&1 代表的意义

    2021-09-01 1. 参数介绍 0 – stdin (standard input) 标准输入1 – stdout (standard output) 标准输出2 – stderr (stand ...

  3. IO和零拷贝

    I/O介绍 I/O主要为:网络IO(本质是socket文件读取).磁盘IO 每次IO,都要经由两个阶段: 第一步:将数据从文件先加载至内核内存空间(缓冲区),等待数据准备完成,时间较长 第二步:将数据 ...

  4. SQL语句之基本使用

    1.sql语法 一些重要的SQL命令: SELECT - 从数据库中提取数据 UPDATE - 更新数据库中的数据 DELETE - 从数据库中删除数据 INSERT INTO - 向数据库中插入新数 ...

  5. noip模拟29

    这次终于是早上考试了 早上考试手感不错,这次刷新了以前的最高排名- %%%cyh巨佬 \(rk1\) %%%CT巨佬 \(t2\) 90 纵观前几,似乎我 \(t3\) 是最低的-- 总计挂分10分, ...

  6. 即时通讯网-TCPIP族关系图

  7. Linux-实战常用命令

    目录 关机/重启/注销 系统信息和性能查看 磁盘和分区 ⽤户和⽤户组 ⽹络和进程管理 常⻅系统服务命令 ⽂件和⽬录操作 ⽂件查看和处理 打包和解压 RPM包管理命令 YUM包管理命令 DPKG包管理命 ...

  8. 【MyBatis】几种批量插入效率的比较

    批处理数据主要有三种方式: 反复执行单条插入语句 foreach 拼接 sql 批处理 一.前期准备 基于Spring Boot + Mysql,同时为了省略get/set,使用了lombok,详见p ...

  9. Android学习记录(二)——第一次hello world及遇到的gradle安装问题

    开始一个简单的hello world项目,简单了解Android studio的使用方法 第一步,打开Android studio,点击Create New Project 第二步,选择需要的模板 T ...

  10. CDI 组件拦截器的使用和学习

    拦截器的作用原理: 声明拦截器,加@Interceptor注解 方法有二: 1)为拦截器添加Qualifier: 2)不添加Qualifier.为拦截器添加具体的拦截方法,该方法加@AroundInv ...