哨兵

Redis主从复制、哨兵模式

心不动则不痛 提交于 2020-03-13 23:28:21
1.部署主从 环境: 主IP:10.0.0.15,端口6379 ; 从IP:10.0.0.16,端口6379 . 原理:基于RDB持久化的功能来实现主从复制的功能. a.linux-redis1(10.0.0.15) cd /usr/local/redis/ grep "^[a-Z]" redis.conf # 列出几个修改过的配置 bind 10.0.0.15 protected-mode no port 6379 daemonize yes loglevel notice logfile /usr/local/redis/logs/redis.log databases 16 save 900 1 save 300 10 save 60 10000 dir /data/redis b.linux-redis2(10.0.0.16) cd /usr/local/redis/ grep "^[a-Z]" redis.conf # 其余与上面的配置保持一致 bind 10.0.0.16 slaveof 10.0.0.15 6379 # 启动脚本 cat /usr/lib/systemd/system/redis.service IP=`ifconfig eth0 | awk -F"[ ]+" 'NR==2{print $3}'` [Unit] Description=The

Redis搭建哨兵模式

流过昼夜 提交于 2020-03-13 23:27:28
一 安装Redis 1. 从 https://redis.io/download redis官网下载二进制包安装 例如:wget http://download.redis.io/releases/redis-3.2.7.tar.gz 2. 解压到 /usr/local/ 如图 3. 执行 make 命令,需要安装编译的相关依赖 一般我喜欢把src目录下的可执行文件移动的其它目录 4. 先搭建redis的主从同步,在搭建sentinel哨兵模式 5. 配置文件可以编写的简单点 bind 127.0.0.1 port 6379 daemonize no #pidfile /var/run/redis_6379.pid databases 16 save 2 10 rdbcompression yes rdbchecksum yes dbfilename dump6379.rdb dir /redis/data appendonly yes appendfilename "appendonly6379.aof" appendfsync everysec 另外搭建哨兵模式后redis配置文件会变化因为master DOWN之后会从剩余的slave选出一个master, slaveof后的地址会变化 sentinel monitor MyMaster 127.0.0.1 7001 1

快速排序

佐手、 提交于 2020-03-11 12:01:19
假设对以下10个数进行快速排序: 我们先模拟快速排序的过程:首先,在这个序列中随便找一个数作为基准数,通常为了方便,以第一个数作为基准数。 在初始状态下,数字6在序列的第1位。我们的目标是将6挪到序列中间的某个位置,假设这个位置是k。现在就需要寻找这个k,并且以第k位为分界点,左边的数都小于等于6,右边的数都大于等于6。那么如何找到这个位置k呢? 我们要知道,快速排序其实是冒泡排序的一种改进,冒泡排序每次对相邻的两个数进行比较,这显然是一种比较浪费时间的。 而快速排序是分别从两端开始”探测”的,先从右往左找一个小于6的数,再从左往右找一个大于6的数,然后交换他们。这里可以用两个变量iii和jjj,分别指向序列最左边和最右边。我们为这两个变量起个好听的名字“哨兵iii”和“哨兵jjj”。刚开始的时候让哨兵iii指向序列的最左边,指向数字6。让哨兵jjj指向序列的最右边,指向数字8。 首先哨兵jjj开始出动。因为此处设置的基准数是最左边的数,所以需要让哨兵jjj先出动,这一点非常重要。哨兵jjj一步一步地向左挪动(即j=j−1),直到找到一个小于6的数停下来。接下来哨兵iii再一步一步向右挪动(即i=i+1),直到找到一个数大于6的数停下来。最后哨兵j停在了数字5面前,哨兵iii停在了数字7面前。 现在交换哨兵$i$和哨兵$j$所指向的元素的值。交换之后的序列如下。 到此

redis 哨兵机制环境搭建 - 七脉 - 博客园

倖福魔咒の 提交于 2020-02-28 10:25:29
原文地址 Redis哨兵机制,一主二从 注:Redis哨兵切换,建议一主多从 一、一主二从    教程步骤: https://www.cnblogs.com/zwcry/p/9046207.html 二、哨兵配置(sentinel.conf)    cd /usr/local/redis-ms/      1.创建哨兵目录      mkdir -p ./sentinel/26001/tmp     cp /usr/local/redis/sentinel.conf ./sentinel/26001/   2.修改./sentinel/.conf      cd /usr/local/redis-ms/sentinel/     vim ./26001/sentinel.conf      #修改如下键值对      # bind 127.0.0.1 192.168.1.1 #注释掉或者值为0.0.0.0      protected-mode no #关闭保护模式      port 26001 #端口号      daemonize yes #后台运行      dir /usr/local/redis-ms/sentinel/26001/tmp #解除挂载信息目录      sentinel monitor mymaster 192.168.194.131 6381 1

Redis高级特性介绍及实例分析

随声附和 提交于 2020-02-15 06:03:28
转自:http://www.jianshu.com/p/af7043e6c8f9 Redis基础类型回顾 String Redis中最基本,也是最简单的数据类型。注意,VALUE既可以是简单的String,也可以是复杂的String,如JSON,在实际中常常利用fastjson将对象序列化后存储到Redis中。另外注意mget批量获取可以提高效率。 Hash Hash结构适用于存储对象,相较于String,存储占用更少的内存。Hash结构可以使你像在数据库中Update一个属性一样只修改某一项属性值,而且还可以快速定位数据。比如,如果我们把表User中的数据可以这样放置到Redis中:Hash存储,KEY:User,Field:USERID,VALUE:user序列化后的string。 List 既可以当做栈、又可以当做队列。实际上,可以利用List的先进先出或者先进后出的特性维护一段列表,比如排行榜、实时列表等,甚至还可以简单的当做消息队列来使用。 Set Set是String类型的不重复无序集合。Set的特点在于,它提供了集合的一些运算,比如交集、并集、差集等。这些运算特性,非常方便的解决实际场景中的一些问题,如共同关注、共同粉丝等。 ZSet ZSet就是SortedSet。实际中,很多排序场景都可以考虑ZSet来做。 Redis发展过程中的三种模式:主从、哨兵、集群

redis的主从复制以及哨兵模式

。_饼干妹妹 提交于 2020-02-08 20:22:27
redis的安装 redis的安装包可以上官网下载 server1 172.25.13.1 server2 172.25.13.2 tar zxf redis-5.0.3.tar.gz #解压 yum install gcc -y #源码编译需要依赖 cd redis-5.0.3 make && makeinstall #安装 cd utils/ ./install_server.sh #启动脚本 netstat -tnlp #查看端口 redis主从复制 server1: vim /etc/redis/6379.conf #修改70行 systemctl restart redis_6379 #重启服务 netstat -tnlp #查看端口 server2: vim /etc/redis/6379.conf #修改文件 systemctl restart redis_6379 netstat -tnlp 测试: server1: server2: 哨兵模式 Redis 的 Sentinel 系统用于管理多个 Redis 服务器(instance), 该系统执行以下三个任务: 监控(Monitoring): Sentinel 会不断地检查你的主服务器和从服务器是否运作正常。 提醒(Notification): 当被监控的某个 Redis 服务器出现问题时, Sentinel

【Redis】哨兵机制

你离开我真会死。 提交于 2020-01-28 06:11:42
一、概述 什么是哨兵机制 二、环境配置 2.1 虚拟机 2.2 安装Redis 2.3 配置主从复制 2.4 配置哨兵 2.5 测试 2.6 疑惑(待解决) 一、概述 什么是哨兵机制 Redis的哨兵(sentinel) 系统用于管理多个 Redis 服务器,该系统执行以下三个任务: 监控(Monitoring): 哨兵(sentinel) 会不断地检查你的Master和Slave是否运作正常。 提醒(Notification):当被监控的某个 Redis出现问题时, 哨兵(sentinel) 可以通过 API 向管理员或者其他应用程序发送通知。 自动故障迁移(Automatic failover):当一个Master不能正常工作时,哨兵(sentinel) 会开始一次自动故障迁移操作,它会将失效Master的其中一个Slave升级为新的Master, 并让失效Master的其他Slave改为复制新的Master; 当客户端试图连接失效的Master时,集群也会向客户端返回新Master的地址,使得集群可以使用Master代替失效Master。 哨兵(sentinel) 是一个分布式系统,你可以在一个架构中运行多个哨兵(sentinel) 进程,这些进程使用流言协议(gossipprotocols)来接收关于Master是否下线的信息,并使用投票协议(agreement

C++排序算法之快速排序

时光总嘲笑我的痴心妄想 提交于 2020-01-26 20:01:10
思路 如下图所示,对于数组s={11,18,20,11,6,8},选择11作为关键字key,然后选择两个哨兵low和high分别从数组的首部和尾部出发,执行以下操作: 循环判断尾部哨兵所在元素是否大于key,且low<high,若是则哨兵high–,循环继续;否则循环停止,执行s[low]=s[high],然后转到2。 循环判断首部哨兵所在元素是否小于或等于key,且low<high,若是则哨兵low++,循环继续;否则循环停止,执行s[high]=s[low],然后转到3。 若low>=high,循环停止,否则转到1。 C++实现 int partion ( vector < int > & s , int low , int high ) { int key = s [ low ] ; while ( low < high ) { while ( low < high && s [ high ] > key ) high -- ; s [ low ] = s [ high ] ; while ( low < high && s [ low ] <= key ) low ++ ; s [ high ] = s [ low ] ; } s [ low ] = key ; return low ; } void quickSort ( vector < int > & s , int