Redis主备安装

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

采用主备部署方式,Master不做数据持久化操作,仅Slave做数据持久化操作,Slave采用AOF二进制日志文件作为持久化方案,默认每秒持久化一次。


  • 安装

1. 下载源代码文件redis-2.8.19.tar.gz 

2. 解压tar -xzvf redis-2.8.19.tar.gz

3. 进入目录 cd redis-2.8.19
4. 编译make
5. 安装 make install
6. 创建数据目录mkdir data
7. 创建日志目录 mkdir logs
主备机器上安装一样,略。


  • 配置

Master机器redis.conf配置

属性

描述

daemonize

yes

启动进程为后台进程

port

6379

端口,6379为默认端口

logfile

"/opt/oracle/redis-2.8.19/logs/redis.log"

日志文件

databases

1

数据库个数

dbfilename

"dump_master.rdb"

数据dump文件

dir

"/opt/oracle/redis-2.8.19/data"

数据文件所在目录

maxclients

10000

最大连接数

#save 900 1

不打开此属性

不打开快照持久化方式(Master不做持久化)

#save 300 10

不打开此属性

不打开快照持久化方式(Master不做持久化)

#save 60 10000

不打开此属性

不打开快照持久化方式(Master不做持久化)

appendonly

no

不打开二进制日志文件(Master不做持久化)

maxmemory

8gb

物理内存的一半

# 1k => 1000 bytes

# 1kb => 1024 bytes

# 1m => 1000000 bytes

# 1mb => 1024*1024 bytes

# 1g => 1000000000 bytes

# 1gb => 1024*1024*1024 bytes

maxmemory-policy

noeviction

内存不够用时,写时返回error,读取操作正常

Slave机器redis.conf配置

属性

描述

daemonize

yes

启动进程为后台进程

port

6379

端口,6379为默认端口

logfile

"/opt/oracle/redis-2.8.19/logs/redis.log"

日志文件

databases

1

数据库个数

dbfilename

"dump_master.rdb"

数据dump文件

dir

"/opt/oracle/redis-2.8.19/data"

数据文件所在目录

maxclients

10000

最大连接数

#save 900 1

不打开此属性

不打开快照方式持久化方式

#save 300 10

不打开此属性

不打开快照方式持久化方式

#save 60 10000

不打开此属性

不打开快照方式持久化方式

slaveof <master ip> <port>

slaveof 192.168.126.137 6379

IP和端口为MasterIP和端口

appendonly

yes

打开二进制日志文件作为持久化方式

appendfsync

everysec

每间隔1秒钟持久化一次数据

appendfilename

"appendonly_slave.aof"

二进制日志文件名称

maxmemory

8gb

物理内存的一半

maxmemory-policy

noeviction

 

Master机器上sentinel.conf配置

属性

描述

port

16379

监视哨端口

daemonize

yes

启动的进程为后台进程

logfile

"/opt/oracle/redis-2.8.19/logs/sentinel.log"

日志文件

sentinel monitor <master-name> <ip> <redis-port> <quorum>

sentinel monitor mymaster 127.0.0.1 6379 1

IP和端口为MasterIP地址和端口,mymaster为集群名称,可以修改为想要的名称,客户端访问时需要这个名称

sentinel down-after-milliseconds <master-name> 30000

sentinel down-after-milliseconds mymaster 30000

master-name为一个统一的集群名称

sentinel failover-timeout <master-name> 180000

sentinel failover-timeout mymaster 180000

sentinel parallel-syncs <master-name> <numslaves>

sentinel parallel-syncs mymaster 1

Slave机器上sentinel配置

Slave机器上的sentinel.conf配置同Master机器上的sentinel.conf配置一样,配置同上。


  • 启动

命令

描述

备注

redis-server redis.conf

启动Master主机

 

redis-server redis.conf

启动Slave主机

 

redis-sentinel sentinel.conf

启动Master主机上的监视哨

监视哨进程可单独部署在另外的机器上,只有在过半数的监视哨存活的情况下才能进行主备切换。

redis-sentinel sentinel.conf

启动Slave主机上的监视哨


  • 验证

1. 进入master控制台 redis-cli –p 6379
2. 设置一个值 set foo car
3. 取出这个值 get foo
4. 进入slave控制台 redis-cli –p 6379
5. 取出这个值 get foo
如果主备机器上均能取出这个值,则安装部署已经成功。


  • Jedis使用
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"><property name="maxTotal" value="30" /><property name="maxIdle" value="10" /><property name="minIdle" value="10" /><property name="blockWhenExhausted" value="true"></property><property name="maxWaitMillis" value="3000" /><property name="testOnBorrow" value="false" /><property name="testOnReturn" value="false" /><property name="testWhileIdle" value="false" />
</bean>
<bean id="jedisSentinelPool" class="redis.clients.jedis.JedisSentinelPool"><constructor-arg index="0" value="mymaster" /><constructor-arg index="1"><set><value>192.168.126.151:16379</value><value>192.168.126.151:26379</value></set></constructor-arg><constructor-arg index="2" ref="jedisPoolConfig" /><constructor-arg index="3" type="int" value="15000" />
</bean>
@Test
public void test0() {Jedis jedis = null;try {jedis = jedisSentinelPool.getResource();jedis.set("1111", "22222value");} catch (Exception e) {e.printStackTrace();} finally{try {jedis.close();} catch (Exception e) {}}
}


转载于:https://my.oschina.net/u/1274122/blog/402276

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

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

相关文章

数据库设计三大范式【转载】

数据库设计范式 什么是范式&#xff1a;简言之就是&#xff0c;数据库设计对数据的存储性能&#xff0c;还有开发人员对数据的操作都有莫大的关系。所以建立科学的&#xff0c;规范的的数据库是需要满足一些 规范的来优化数据数据存储方式。在关系型数据库中这些规范就可以称为…

Visual C++2010的使用

Tools->Settings>Rest... 还原所有设置 运行程序&#xff1a;"D:\Program Files\VCExpress\Install\Microsoft Visual Studio 10.0\Common7\IDE\VCExpress.exe" 一、Visual C2010&#xff08;微软vc2010&#xff09;如何编写并运行C程序&#xff1f; 1、刚开始…

linux下时间同步的两种方法分享

为什么80%的码农都做不了架构师&#xff1f;>>> 方法1&#xff1a;与一个已知的时间服务器同步 ntpdate time.nist.gov 方法2&#xff1a;linux自动同步时间vi /etc/crontab 00 0 1 * * root rdate -s time.nist.gov 转载于:https://my.oschina.net/boltwu/blo…

.Net TCP/UDP 编程 【一】【原创】

命名空间&#xff1a; using System.Net;using System.Net.Sockets; 关键 &#xff1a; TCP /UDP连接 UDP UDP 与 tCP的主要区别在于 UDP 不一定提供可靠的数据传输。事实上&#xff0c;该协议不能保证数据准确无误地到达目的地。UDP 在许多方面非常有效。当某个程序的目标是尽…

maven配置_eclipse创建maven_maven插件配置

为什么80%的码农都做不了架构师&#xff1f;>>> 最近项目开发中需要使用maven。Maven这个东西是我2年前自学的。这2年之中基本没有使用过。现在项目需要&#xff0c;只有重新来一遍回锅肉。重新学习。经过一下午的斗争&#xff0c;一下午的各种问题各种解决&#x…

老生又长谈:HttpApplication,HttpModule,HttpContext及Asp.Net页生命周期

IIS在接到一个新的http请求后&#xff0c;最终会调用asp.net_isapi.dll的ISAPI扩展(特指IIS6.0环境&#xff0c;iis7.0的应用程序池默认为集成方式&#xff0c;相对有所变化)&#xff0c;然后传递到httpRuntime Pipe(http运行时管道)&#xff0c;Asp.Net这时才开始运行(即HttpR…

ByteBuffer常用方法详解

缓冲区(Buffer)就是在内存中预留指定大小的存储空间用来对输入/输出(I/O)的数据作临时存储&#xff0c;这部分预留的内存空间就叫做缓冲区&#xff1a; 使用缓冲区有这么两个好处&#xff1a; 1、减少实际的物理读写次数 2、缓冲区在创建时就被分配内存&#xff0c;这块内存区域…

LeetCode—221. 最大正方形

221. 最大正方形 题目描述&#xff1a; 在一个由 ‘0’ 和 ‘1’ 组成的二维矩阵内&#xff0c;找到只包含 ‘1’ 的最大正方形&#xff0c;并返回其面积。 考察重点&#xff1a;动态规划 方法概括&#xff1a;二维矩阵中查询最大矩形 dp[i][j] Min(dp[i-1][j],dp[i][j-1]…

Egret入门学习日记 --- 第二篇

第二篇&#xff08;学习篇&#xff09; 既然选好了Egret&#xff0c;那我就要想想怎么学了。 开始第一步&#xff0c;先加个Q群先&#xff0c;这不&#xff0c;拿到了一本《Egret HTML5游戏开发指南》&#xff0c;阅至三章&#xff0c;得到印象相对较深的好处和坏处&#xff1…

辨别文件的真实类型

2019独角兽企业重金招聘Python工程师标准>>> 参考博客http://blog.csdn.net/shixing_11/article/details/5708145 每个文件类型都对应着一个编码头部 下面这些是已知的文件头部[自定义的枚举类型] package org.masque.file; /*** * Description:文件对应的文件头,资…

ng build --prod --aot打包Angluar4项目报javaScript heap out of memory,内存溢出

这里 Allocation failed - JavaScript heap out of memory JavaScript堆内存不足&#xff0c;我们都知道 Node 是基于V8引擎&#xff0c;在一般的后端开发语言中&#xff0c;在基本的内存使用上没有什么限制&#xff0c;但是我去查阅了相关的资料才发现&#xff0c;在 Node 中通…

GARFIELD@12-02-2004

your BELLY is more ready to be convinced than your BRAIN 转载于:https://www.cnblogs.com/rexhost/archive/2004/12/02/72000.html

LeetCode—223. 矩形面积

223. 矩形面积 题目描述&#xff1a; 给你 二维 平面上两个 由直线构成且边与坐标轴平行/垂直 的矩形&#xff0c;请你计算并返回两个矩形覆盖的总面积。 每个矩形由其 左下 顶点和 右上 顶点坐标表示&#xff1a; 第一个矩形由其左下顶点 (ax1, ay1) 和右上顶点 (ax2, ay2)…

GARFIELD@01-31-2005

savage sandwich 转载于:https://www.cnblogs.com/rexhost/archive/2005/01/31/99836.html

【ABAP系列】SAP ABAP模块-任意report作为附件以邮件形式发送

公众号&#xff1a;SAP Technical本文作者&#xff1a;matinal原文出处&#xff1a;http://www.cnblogs.com/SAPmatinal/ 原文链接&#xff1a;【ABAP系列】SAP ABAP模块-任意report作为附件以邮件形式发送前言部分 大家可以关注我的公众号&#xff0c;公众号里的排版更好&…

[Mac]一些命令技巧

Git相关 mac下git默认不区分大小写&#xff0c;通过下面脚本可以改变 #!/bin/bash# 让git区分大小写 cd path-of-project git config core.ignorecase false git不会将空文件夹添加到版本控制中&#xff0c;下面脚本可以让空文件夹加到git # 将所有空文件夹添加到git cd path-o…

GARFIELD@02-24-2005

a cat on a ball 转载于:https://www.cnblogs.com/rexhost/archive/2005/02/25/109153.html

网站总结 和 相关控件 总结

2019独角兽企业重金招聘Python工程师标准>>> 学习篇 https://github.com/Aufree/trip-to-iOS 开源库 http://github.ibireme.com/github/list/ios/ 项目管理和工具 测试&#xff1a;TestFlight 依赖管理&#xff1a;CocoaPods 自动生成推送证书&#xff1a;Gen…

西门子新款A系列手机【ZZ】

linked from http://www.tompda.com/neirong.asp?id809 西门子新款A系列手机   首页 > 新闻资讯 提交 shizhi 2005-2-25  阅读:2739次 10篇评论 西门子公司近日推出了A系列手机&#xff0c;A系列手机作为入门级手机&#xff0c;设计和功能十分简洁和实用。 西门子A70:设…

Chord算法

转自&#xff1a;http://blog.csdn.net/wangxiaoqin00007/article/details/7374833 虽然网上搜索CHord&#xff0c;一搜一大堆&#xff0c;但大多讲得不太清楚明白。今天发现一篇blog&#xff0c;图文并茂&#xff0c;逻辑清楚且易懂&#xff0c;特意转载收藏。 P2P的一个常见问…