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,一经查实,立即删除!

相关文章

一位台湾校长的讲话。学习!!!

台湾有这么一所学校&#xff0c;学生年龄在15&#xff0d;18之间&#xff0c;每年三千多学生中&#xff0c;因违反校规校纪被校方开除的二、三百人。学校没有工人&#xff0c;没有保卫&#xff0c;没有大师傅&#xff0c;一切必要工种都由学生自己去做。学校实行学长制&#xf…

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

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

MVC2验证(自定义异常)

源码 /Files/zhangchao1/MVCValidationTest.rar 在contorllers内虽然简单&#xff0c;但有却有些不符合mvc 的设计理念&#xff0c;这里&#xff0c;我们将验证放到DLL部分 首先建立自定义的异常类 public class MyExcptions:Exception { //存放错误信息 List<string[]> …

LeetCode—210. 课程表 II

210. 课程表 II 题目描述&#xff1a;现在你总共有 numCourses 门课需要选&#xff0c;记为 0 到 numCourses - 1。给你一个数组 prerequisites &#xff0c;其中 prerequisites[i] [ai, bi] &#xff0c;表示在选修课程 ai 前 必须 先选修 bi 。 例如&#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、刚开始…

LeetCode—211. 添加与搜索单词 - 数据结构设计

211. 添加与搜索单词 - 数据结构设计 题目描述&#xff1a;请你设计一个数据结构&#xff0c;支持 添加新单词 和 查找字符串是否与任何先前添加的字符串匹配 。 实现词典类 WordDictionary &#xff1a; WordDictionary() 初始化词典对象 void addWord(word) 将 word 添加到…

58或与赶集合并,几人欢喜几人愁

前奏&#xff1a;相信在北京的园友们今天早上一觉醒来&#xff0c;让大家感慨的不光是昨天的沙尘暴&#xff08;2月雾霾3月风沙4月来了个套餐&#xff09;&#xff0c;还有就是58或与赶集合并的消息。 不过这种冤家相聚的例子今年已经有好几起了&#xff0c;like: 优酷土豆/快的…

Java中abstract和interface的区别

abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制&#xff0c;正是由于这两种机制的存在&#xff0c;才赋予了Java强大的面向对象能力。 abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性&#xff0c;甚至可以相互替换&#x…

解决报表部署时数据源存在不能替换的问题

打开报表项目属性页配置属性&#xff0d;常规设置OverWriteDataSourcestrue即可&#xff01;转载于:https://www.cnblogs.com/wyq2004/archive/2004/07/29/28300.html

android 智能指针的学习先看邓凡平的书扫盲 再看前面两片博客提升

android 智能指针的学习先看邓凡平的书扫盲 再看前面两片博客提升转载于:https://www.cnblogs.com/jeanschen/p/3507512.html

LeetCode—213. 打家劫舍 II

213. 打家劫舍 II 题目描述&#xff1a;你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋&#xff0c;每间房内都藏有一定的现金。这个地方所有的房屋都围成一圈 &#xff0c;这意味着第一个房屋和最后一个房屋是紧挨着的。同时&#xff0c;相邻的房屋装有相互连通的防盗系统…

【转载】Linux下有趣的命令

转载&#xff1a;http://www.cnblogs.com/kernel_hcy/archive/2011/05/01/2033928.html yes&#xff1a;输出一串y&#xff0c;有时可以用来对付很多y/n选择的应用 。输出很多。。。banner&#xff1a;打印字符标题&#xff0c;就是用字符拼出大字来 ,最好把窗口最大化&#xf…

企业网站常用中英文对照表

网站导航 site map 公司简介 PROFILE or COMPANY Profile or Company 公司设备 EQUIPMENT Equipment 公司荣誉 GLORIES Glories 企业文化 CULTURE Culture 产品展示 PRODUCT Product 资质认证 quality certification 企业规模 SCALE Scale 营销网络 Sales Network 组织…

Cookies讲座

什么是 Cookie&#xff1f;Cookie 其实是一个标签&#xff0c;经常可能听到的中文翻译&#xff1a;小舔饼。当你访问一个需要唯一标识你的站址的 WEB 站点时&#xff0c;它会在你的硬盘上留下一个标记&#xff0c;下一次你访问同一个站点时&#xff0c;站点的页面会查找这个标记…

LeetCode—37. 解数独(困难)

37. 解数独&#xff08;困难&#xff09; 题目描述&#xff1a; 编写一个程序&#xff0c;通过填充空格来解决数独问题。 数独的解法需 遵循如下规则&#xff1a; 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内…

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 在许多方面非常有效。当某个程序的目标是尽…

友元函数和友元类

友元函数是指某些虽然不是类成员却能够访问类的所有成员的函数。。类授予它的友元特别的访问权。通常同一个开发者会出于技术和非技术的原因&#xff0c;控制类的友元和成员函数&#xff08;否则当你想更新你的类时&#xff0c;还要征得其它部分的拥有者的同意&#xff09;。 /…

LeetCode—216. 组合总和 III

216. 组合总和 III 题目描述&#xff1a; 找出所有相加之和为 n 的 k 个数的组合&#xff0c;且满足下列条件&#xff1a; 只使用数字1到9 每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次&#xff0c;组合可以以任何顺序返回。 考察重…

发表和编辑Post的一个Bug

其实这个Bug很早以前就发现了&#xff0c;只是一直忘了问dudu。在写Post的时候&#xff0c;当我需要改变字体颜色&#xff0c;例如选择红色时&#xff0c;文字的字体发生了改变。但当我第二次选择字体颜色&#xff0c;且选择相同的颜色时&#xff0c;选中的文字颜色就没有发生变…