Linux搭建高并发高可用Redis集群

安装Redis

Redis 是一个高性能的key-value数据库。常用作缓存服务器使用。

1. 下载redis安装包,redis-3.2.11.tar.gz(http://download.redis.io/releases/redis-3.2.11.tar.gz)

> wget http://download.redis.io/releases/redis-3.2.11.tar.gz

2. 将安装包放到/usr/local/src/目录下

> mv redis-3.2.11.tar.gz /usr/local/src/

3. 解压安装包

> tar zxvf redis-3.2.11.tar.gz

4. 进入解压后的目录

> cd redis-3.2.11

5. 编译并安装(PREFIX指定目录)

> make PREFIX=/usr/local/redis install

6. 修改redis.conf

daemonize yes #后台运行

7. 将Redis的bin目录(/usr/local/redis/bin)加到系统环境变量中

8. 运行redis(后面加上文件名启动配置才能生效)

> redis-server redis.conf

9. 查看Redis是否已启动

ps -ef|grep redis

配置主从复制应对高并发

配置主从复制实现数据备份,确保数据安全,多个从同时提供读服务,提高并发访问量。

1. 进入redis主目录,将所有正在运行的redis进程关闭。

# redis-cli -p 6379 shutdown

2. 复制两份redis.conf文件,并命名为slave1.conf和slave2.conf。

# cp redis.conf slave1.conf

# cp redis.conf slave2.conf

3. 修改redis.conf、slave1.conf和slave2.conf,修改端口号,使一主两从共三个redis实例不冲突。

redis.conf修改port为6379

slave1.conf修改port为6380

slave2.conf修改port为6381

4. 分别启动三个redis实例。

> redis-server redis.conf

> redis-server slave1.conf

> redis-server slave2.conf

5. 启动后,分别进入两个slave实例客户端执行下面的命令:

> redis-cli -p 6380

127.0.0.1:6380> slaveof 127.0.0.1 6379 #指定本实例成为本机6379端口实例的slave

127.0.0.1:6380> exit

> redis-cli -p 6381

127.0.0.1:6381> slaveof 127.0.0.1 6379 #指定本实例成为本机6379端口实例的slave

127.0.0.1:6381> exit

开启哨兵实现高可用

开启哨兵监控redis服务的运行状态,当出现主服务异常关闭的情况时,哨兵会选举一个从服务为新的主服务,确保服务集群的高可用。

1. 进入redis主目录。

2. 复制两份sentinel.conf文件,并命名为sentinel1.conf和sentinel2.conf。

cp sentinel.conf sentinel1.conf

cp sentinel.conf sentinel2.conf

3. 修改sentinel1.conf和sentinel2.conf,修改端口号,使两个sentinel实例不冲突。

sentinel1.conf修改port为26380

sentinel2.conf修改port为26381

4. 分别启动两个sentinel实例。

> redis-sentinel sentinel1.conf &

> redis-sentinel sentinel2.conf &

开启成功后,当主redis实例异常关闭后,sentinel会从两个从redis实例中选出一个成为新的主人redis实例

当遇异常关闭的redis实例重新启动后,会变成新主人的从redis。

如果你的主从不在同一台服务器上,建议使用redis.conf中的bind绑定多个IP,不建议注释掉IP绑定使用密码来访问,更不要直接关闭保护模式。Redis本身是缓存服务器,为安全起见,不应该暴露在公网中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/473580.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flink简介

1 什么是Flink Apache Flink 是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算。Flink 能在所有常见集群环境中运行,并能以内存速度和任意规模进行计算。 它的主要特性包括:批流一体化、精密的状态管理、事件时间支…

Winform datagridview相关操作

datagridview显示行号的2种方法: 方法一: 网上最常见的做法是用DataGridView的RowPostPaint事件在RowHeaderCell中绘制行号: privatevoiddataGridView1_RowPostPaint(objectsender, DataGridViewRowPostPaintEventArgs e){try{e.Graphics.DrawString((e.…

天池 在线编程 旅行计划(暴力回溯)

文章目录1. 题目2. 解题1. 题目 描述 有n个城市,给出邻接矩阵arr代表任意两个城市的距离。 arr[i][j]代表从城市i到城市j的距离。Alice在周末制定了一个游玩计划,她从所在的0号城市开始,游玩其他的1 ~ n-1个城市,最后回到0号。 A…

初始化环境配置:CentOS 7.4x64 系统安装及基础配置

1.安装CentOS操作系统 ① 在进入系统引导后,会进入文字界面,选择install CentOS7 (用键盘上的方向键↑、↓来选择要执行的操作,白色字体表示选中,按下回车,进入下一步操作) ② 按回车执行安…

天池 在线编程 拿走瓶子(区间DP)

文章目录1. 题目2. 解题1. 题目 描述 有n个瓶子排成一列&#xff0c;用arr表示。 你每次可以选择能够形成回文连续子串的瓶子拿走&#xff0c;剩下的瓶子拼接在一起。 返回你能拿走所有的瓶子的最小次数。 n<500 arr[i]<1000示例 例1: 输入&#xff1a;[1,3,4,1,5] …

Flink运行时架构

1 运行时相关的组件 Flink运行时架构主要包括四个不同的组件&#xff1a;作业管理器&#xff08;JobManager&#xff09;、资源管理器&#xff08;ResourceManager&#xff09;、任务管理器&#xff08;TaskManager&#xff09;&#xff0c;以及分发器&#xff08;Dispatcher&a…

大型网站电商网站架构案例和技术架构的示例

大型网站架构是一个系列文档&#xff0c;欢迎大家关注。本次分享主题&#xff1a;电商网站架构案例。从电商网站的需求&#xff0c;到单机架构&#xff0c;逐步演变为常用的&#xff0c;可供参考的分布式架构的原型。除具备功能需求外&#xff0c;还具备一定的高性能&#xff0…

Spring JPA

http://files.cnblogs.com/weishuai90/spring.rar转载于:https://www.cnblogs.com/weishuai90/p/3567794.html

天池 在线编程 删除字符(单调栈)

文章目录1. 题目2. 解题1. 题目 描述 给定一个字符串str&#xff0c;现在要对该字符串进行删除操作&#xff0c; 保留字符串中的 k 个字符且相对位置不变&#xff0c;并且使它的字典序最小&#xff0c;返回这个子串。 示例 例1: 输入:str"fskacsbi",k2 输出:&quo…

Flink常见流处理API

Flink 流处理API的编程可以分为environment&#xff0c;source&#xff0c;transform&#xff0c;sink四大部分 1 Flink支持的数据类型 在Flink底层因为要对所有的数据序列化&#xff0c;反序列化对数据进行传输&#xff0c;以便通过网络传送它们&#xff0c;或者从状态后端、…

Flask框架项目实例:**租房网站(二)

Flask是一款MVC框架&#xff0c;主要是从模型、视图、模板三个方面对Flask框架有一个全面的认识&#xff0c;通过完成作者-读书功能&#xff0c;先来熟悉Flask框架的完整使用步骤。 操作步骤为&#xff1a; 1.创建项目2.配置数据库3.定义模型类4.定义视图并配置URL 5.定义模板…

Android中的APK,TASK,PROCESS,USERID之间的关系

开发Android已经有一段时间了&#xff0c;今天接触到底层的东西&#xff0c;所以对于进程&#xff0c;用户的id以及Android中的Task,Apk之间的关系&#xff0c;要做一个研究&#xff0c;下面就是研究结果: apk一般占一个dalvik,一个进程,一个task。当然通过通过设置也可以多个进…

天池 在线编程 插入五

文章目录1. 题目2. 解题1. 题目 描述 给定一个数字&#xff0c;在数字的任意位置插入一个5&#xff0c;使得插入后的这个数字最大 示例 样例 1: 输入: a 234 输出: 5234 来源&#xff1a;https://tianchi.aliyun.com/oj/141758389886413149/160295184768372892 2. 解…

Flink的Window

1 Window概述 streaming流式计算是一种被设计用于处理无限数据集的数据处理引擎&#xff0c;而无限数据集是指一种不断增长的本质上无限的数据集&#xff0c;而window是一种切割无限数据为有限块进行处理的手段。 Window是无限数据流处理的核心&#xff0c;Window将一个无限的s…

标记语言Markdown介绍以及日常使用

Markdown介绍 Markdown是一种文本标记语言&#xff0c;用于快速文档排版Markdown文件为纯文本文件&#xff0c;后缀名为 .mdMarkdown介于Word和HTML之间 比起Word&#xff0c;Markdown是纯文本&#xff0c;排版文档轻量、方便、快速。比起HTML&#xff0c;Markdown简单直观&…

Everyday is an Opportunity

Quote Of The Day: “Everyday is an Opportunity to Learn and Grow, Don’t Waste Your Opportunity.” – Alan THE END 转载于:https://www.cnblogs.com/lan1x/p/3572914.html

天池 在线编程 有效的字符串

文章目录1. 题目2. 解题1. 题目 描述 如果字符串的所有字符出现的次数相同&#xff0c;则认为该字符串是有效的。 如果我们可以在字符串的某1个索引处删除1个字符&#xff0c;并且其余字符出现的次数相同&#xff0c;那么它也是有效的。 给定一个字符串s&#xff0c;判断它是否…

Flink的时间语义和Watermark

1 时间语义 数据迟到的概念是&#xff1a;数据先产生&#xff0c;但是处理的时候滞后了 在Flink的流式处理中&#xff0c;会涉及到时间的不同概念&#xff0c;如下图所示&#xff1a; Event Time&#xff1a;是事件创建的时间。它通常由事件中的时间戳描述&#xff0c;例如采集…

数据分析案例:亚洲国家人口数据计算

数据截图: 数据下载地址&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1dGHwAC5 密码&#xff1a;nfd2 该数据包含了2006年-2015年10年间亚洲地区人口数量数据&#xff0c;共10行50列数据。我们需要使用Numpy完成如下数据任务: 计算2015年各个国家人口数据计算朝鲜历…

LeetCode 1646. 获取生成数组中的最大值

文章目录1. 题目2. 解题1. 题目 给你一个整数 n 。按下述规则生成一个长度为 n 1 的数组 nums &#xff1a; nums[0] 0nums[1] 1当 2 < 2 * i < n 时&#xff0c;nums[2 * i] nums[i]当 2 < 2 * i 1 < n 时&#xff0c;nums[2 * i 1] nums[i] nums[i 1]…