redis编译安装、哨兵、集群
编译安装
- #下载源代码解压
- 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编译安装、哨兵、集群的更多相关文章
- Redis集合 安装 哨兵集群 配置
redis相关 redis基础 redis发布订阅 redis持久化RDB与AOF redis不重启,切换RDB备份到AOF备份 redis安全配置 redis主从同步 redis哨兵集群 redis ...
- 阿里云ECS部署Redis主备哨兵集群遇到的问题
一.部署 详细部署步骤:https://blog.csdn.net/lihongtai/article/details/82826809 Redis5.0版本需要注意的参数配置:https://www ...
- C#两大知名Redis客户端连接哨兵集群的姿势
前言 前面利用<Docker-Compose搭建Redis高可用哨兵集群>, 我们的思路是将Redis.Sentinel.Redis Client App链接到同一个网桥网络,这个网桥内的 ...
- Redis单机安装以及集群搭建
今天主要来看一下Redis的安装以及集群搭建(我也是第一次搭建). 环境:CentOS 7.1,redis-5.0.7 一.单机安装 1.将Redis安装包放置服务器并解压 2.进入redis安装目录 ...
- redis系列--深入哨兵集群
一.前言 在之前的系列文章中介绍了redis的入门.持久化以及复制功能,如果不了解请移步至redis系列进行阅读,当然我也是抱着学习的知识分享,如果有什么问题欢迎指正,也欢迎大家转载.而本次将介绍哨兵 ...
- Redis自动化安装以及集群实现
Redis实例安装 安装说明:自动解压缩安装包,按照指定路径编译安装,复制配置文件模板到Redis实例路的数据径下,根据端口号修改配置文件模板 三个必须文件:1,配置文件,2,当前shell脚本,3, ...
- linux下redis的安装和集群搭建
一.redis概述 1.1.目前redis支持的cluster特性: 1):节点自动发现. 2):slave->master 选举,集群容错. 3):Hot resharding:在线分片. 4 ...
- CentOS6.3编译安装Memcached集群分布式缓存代理Magent-0.6出错汇总
参考文章:Memcached集群/分布式/高可用 及 Magent缓存代理搭建过程 详解,搭建Magent,在编译的过程中会出现很多错误: #编译安装安装magent到 /usr/local/mage ...
- Redis Sentinel哨兵集群
Redis Sentinel(哨兵集群)是一种高可用的redis部署方案.在集群中的redis-master服务挂掉时,无需人为干预,即可通过哨兵集群的自我调整,实现redis服务的持续可用. 哨兵集 ...
随机推荐
- IDEA常用设置及推荐插件
IDEA常用设置及推荐插件 本文主要记录IDEA的一些常用设置,IDEA与Eclipse的常用快捷键对比及推荐一些好用的插件. 基本设置 设置界面风格及修改外部UI尺寸大小 打开IDEA时设置不重新打 ...
- 对抗生成网络GAN
该方法常用于: 图像生成 图像修复,训练用了MSE+Global+Local数据,其中Global+Local判别式用于全局+局部一致性. 图像超分辨率重构 GAN的基本原理,主要包含两个网络 ...
- Servlet学习笔记(三)之HttpServletResponse
init() 方法中参数 ServletConfig 对象使用 通过ServletConfig 获得 ServletContext对象 使用 HttpServletRequest 与HttpServl ...
- 【曹工杂谈】详解Maven插件调试方法
前言 今年的更新频率简直是降至冰点了,一方面平时加班相对多一些了,下班只想玩手机:另一方面,好像进了大厂后,学习动力也很低了,总之就,很懒散,博客的话,今年都才只更新了不到5篇. 现在慢慢有一点状态, ...
- 一、Rabbitmq的简单介绍
以下只是本人从零学习过程的整理 部分内容参考地址:https://www.cnblogs.com/ysocean/p/9240877.html 1.RabbitMQ的概念 RabbitMQ是实现了高级 ...
- Docker数据映射
1.映射目录 docker run -v 2.映射文件 docker run -v
- noip模拟测试52
这套题总体来说比较简单,但是有一些分数我没有拿到,先说T1,我10分钟左右打完了60分的暴力,然后就开始打表找规律,好像只有我去找了循环节,找规律找了一个多小时,到八点四十的时候我还没有正解做法,就直 ...
- mybatis整理笔记
以下是idea2018辑编器 新建 Maven工程 1 file ->new ->project 新建后编程器在右下角加载插件.,这个时候需要会儿, 加载好后,软件目录会多一个ja包 ...
- Django学习day09随堂笔记
每日测验 """ 今日考题: 1.choices参数的应用场景有哪些,如何获取该字段的值 2.django是什么模型的框架,简述MTV与MVC模型 3.多对多表关系有几种 ...
- Docker系列(11)- 部署Nginx
step-1 搜索镜像 使用search命令,建议去dockerhub上搜索,可以看到帮助文档 [root@localhost ~]# docker search nginx NAME DESCRIP ...