master

redis-主从复制(sentinel)

▼魔方 西西 提交于 2020-03-15 23:39:54
前言 redis的持久化功能在一定程度上保证了数据的安全性,即便时服务器宕机的情况下,也可以保证数据的丢失非常少,通常,为了避免服务的单点故障,会把数据复制到多个副本放在不同的服务器上,且这些拥有数据副本的服务器可以用于处理客户端的读请求,扩展整体的性能,下面将介绍redis的主从复制。 1,主从复制概述 redis的复制功能是支持多个服务器之间的数据同步。被复制的服务器称为主服务器(master),对服务器进行复制操作的为从服务器(slave),主服务器master可以进行读写操作,当发生写操作的时候自动将数据同步到从服务器,而从服务器一般是只读的,并接收master同步过来的数据,一个master可以有多个slave,而一个slave只能由一个master。 主从复制的过程: 1,从节点执行slaveof命令; 2,从节点只是保存了slavef命令中主节点的信息,并没有立即发起复制; 3,从节点内部的定时任务发现由主节点的信息,开始使用socket连接主节点; 4,连接建立成功后,发送ping命令,希望得到pong命令响应,否则会进行重连; 5,如果主节点设置了权限,那么就需要进行权限验证;如果验证失败,复制终止; 6,权限验证通过后,进行数据同步,这是耗时最长的操作,主节点将把所有的数据全部发送给从节点; 7,当主节点把当前的数据同步给从节点后,便完成了复制的建立流程

《【面试突击】— Redis篇》-- Redis的主从复制?哨兵机制?

我的梦境 提交于 2020-03-15 20:50:32
原文: 《【面试突击】— Redis篇》-- Redis的主从复制?哨兵机制? 能坚持别人不能坚持的,才能拥有别人未曾拥有的。 关注左上角 编程大道 公众号,让我们一同坚持心中所想,一起成长!! 《【面试突击】— Redis篇》-- Redis的主从复制?哨兵机制? 在这个系列里,我会整理一些面试题与大家分享,帮助年后和我一样想要在金三银四准备跳槽的同学。 我们一起巩固、突击面试官常问的一些面试题,加油!! 《【面试突击】— Redis篇》--Redis数据类型?适用于哪些场景? 《【面试突击】— Redis篇》--Redis的线程模型了解吗?为啥单线程效率还这么高? 面试官在问了上两次提到的问题之后,可能就会开始更加猛烈的攻势,一连串的Redis的知识点向你抛过来,你顶的住吗? 下面就面试经常问到的问题,以问答的方式分享给大家。 Redis如何保证高并发,高可用? 高并发: redis的单机吞吐量可以达到几万不是问题,如果想提高redis的读写能力,可以用redis的主从架构,redis天热支持一主多从的准备模式,单主负责写请求多从负责读请求,主从之间异步复制,把主的数据同步到从。 高可用: 首先利用redis的主从架构解决redis的单点故障导致的不可用,然后如果使用的是主从架构,那么只需要增加哨兵机制即可,就可以实现,redis主实例宕机,自动会进行主备切换

Redis高可用(三)-Replication-Sentinel模式

倖福魔咒の 提交于 2020-03-15 15:16:53
Redis高可用常见的有两种方式: 主从复制(Replication-Sentinel模式) Redis集群(Redis-Cluster模式) 主从复制(Replication-Sentinel模式) 工作原理-Replication Redis主从结构如下图所示,主节点(master)负责读写,从节点(slave)负责读。这个系统的运行依靠三个主要的机制: 当一个 master 实例和一个 slave 实例连接正常时, master 会发送一连串的命令流来保持对 slave 的更新,以便于将自身数据集的改变复制给 slave ,包括客户端的写入、key 的过期或被逐出等等。 当 master 和 slave 之间的连接断开之后,因为网络问题、或者是主从意识到连接超时, slave 重新连接上 master 并会尝试进行部分重同步:这意味着它会尝试只获取在断开连接期间内丢失的命令流。 当无法进行部分重同步时, slave 会请求进行全量重同步。这会涉及到一个更复杂的过程,例如 master 需要创建所有数据的快照,将之发送给 slave ,之后在数据集更改时持续发送命令流到 slave 。 简单的主从集群有个问题,就是主节点挂了之后,无法从新选举新的节点作为主节点进行写操作,导致服务不可用。所以接下来介绍Sentinel(哨兵)功能的使用。哨兵是一个独立的进程

git提交代码

这一生的挚爱 提交于 2020-03-15 11:54:25
Git提交代码的流程——新手适用 pull:是下拉代码,相等于将远程的代码下载到你本地,与你本地的代码合并 push:是推代码,将你的代码上传到远程的动作 完整的流程是: 第一种方法:(简单易懂) 1、git add .(后面有一个点,意思是将你本地所有修改了的文件添加到暂存区) 2、git commit -m""(引号里面是你的介绍,就是你的这次的提交是什么内容,便于你以后查看,这个是将索引的当前内容与描述更改的用户和日志消息一起存储在新的提交中) 3、git pull origin master 这是下拉代码,将远程最新的代码先跟你本地的代码合并一下,如果确定远程没有更新,可以不用这个,最好是每次都执行以下,完成之后打开代码查看有没有冲突,并解决,如果有冲突解决完成以后再次执行1跟2的操作 4、git push origin master 将代码推至远程就可以了 第二种方法: 1、git stash (这是将本地代码回滚值至上一次提交的时候,就是没有你新改的代码) 2、git pull origin master(将远程的拉下来) 3、git stash pop(将第一步回滚的代码释放出来,相等于将你修改的代码与下拉的代码合并) 然后解决冲突,你本地的代码将会是最新的代码 4、git add . 5、git commit -m"" 6、git push origin

Redis的自从复制(Master/Slave)

浪子不回头ぞ 提交于 2020-03-15 11:29:18
一、是什么? 行话:也就是我们所说的主从复制,主机数据更新后根据配置和策略, 自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主 二、能干嘛? 1、读写分离 2、容灾恢复 三、从库配置:slaveof 主库IP 主库端口 (1)每次与master断开之后,都需要重新连接,除非你配置进redis.conf文件 (2)info replication 四、修改配置文件细节操作 1、拷贝多个redis.conf文件 2、开启daemonize yes 3、pid文件名字 4、指定端口 5、log文件名字 6、dump.rdb名字 五、常用三招 (1)一主二仆 1、Init 2、一个Master两个Slave 3、日志查看:主机日志、备机日志、 info replication (2)薪火相传 1、上一个Slave可以是下一个slave的Master,Slave同样可以接收其他 slaves的连接和同步请求,那么该slave作为了链条中下一个的master, 可以有效减轻master的写压力 2、中途变更转向:会清除之前的数据,重新建立拷贝最新的 3、slaveof 新主库IP 新主库端口 (3)反客为主(SLAVEOF no one) 使当前数据库停止与其他数据库的同步,转成主数据库 六、复制原理 1

docker下redis集群搭建

点点圈 提交于 2020-03-15 03:18:39
docker 下redis集群配置: 1.获取官方redis镜像: docker pull redis: 2.编辑配置文件:配置文件可自行处理 vi redis1.cong bind 0.0.0.0 #绑定地址 protected-mode yes port 6392 #端口 tcp-backlog 511 timeout 0 tcp-keepalive 300 daemonize no #守护进程 supervised no pidfile /var/run/redis_6379.pid rdbcompression yes rdbchecksum yes dbfilename dump.rdb dir ./ slave-serve-stale-data yes slave-read-only yes cluster-enabled yes #启用集群 cluster-config-file nodes-6379.conf # cluster-node-timeout 15000 #复制配置文件六分,修改端口 3#启用节点 docker的网络模式为net:使用宿主机的网络模式 --net=host docker run -d --name redis_136_6391 --net=host -v /home/wolfplus/docker/redis/redis.conf:

Redis 集群(11)

混江龙づ霸主 提交于 2020-03-15 01:43:59
为什么需要集群? 1、性能 Redis本身的QPS已经很高了,但是如果在一些并发量非常高的情况下,性能还是会受到影响。这个时候我们希望有更多的Redis服务来完成工作。 2、扩展 第二个是出于存储的考虑。因为Redis所有的数据都放在内存中,如果数据量大,很容易受到硬件的限制。升级硬件收效和成本比太低,所以我们需要有一种横向扩展的方法。 3、可用性 第三个是可用性和安全的问题。如果只有一个Redis服务,一旦服务宕机,那么所有的客户端都无法访问,会对业务造成很大的影响。另一个,如果硬件发生故障,而单机的数据无法恢复的话,带来的影响也是灾难性的。 可用性、数据安全、性能都可以通过搭建多个Reids服务实现。其中有一个是主节点(master),可以有多个从节点(slave)。主从之间通过数据同步,存储完全相同的数据。如果主节点发生故障,则把某个从节点改成主节点,访问新的主节点。 Redis主从复制(replication) 主从复制配置 例如一主多从,100是主节点,在每个slave节点的redis.conf配置文件增加一行 slaveof 192.168.1.100 6379 //在主从切换的时候,这个配置会被重写成: #GeneratedbyCONFIGREWRITE replicaof 192.168.1.100 6379 或者在启动服务时通过参数指定master节点: .

git删除所有提交历史记录

我是研究僧i 提交于 2020-03-14 18:43:58
这种方式是最快最有效的 进项目根目录启动git bash,然后执行这些即可 最后的 git push -f origin master 会失败,直接在idea里push就能成功了 1.Checkout git checkout --orphan latest_branch 2. Add all the files git add -A 3. Commit the changes git commit -am "commit message" 4. Delete the branch git branch -D master 5.Rename the current branch to master git branch -m master 6.Finally, force update your repository git push -f origin master 来源: https://www.cnblogs.com/kinome/p/9651582.html

k8s基础入门知识

会有一股神秘感。 提交于 2020-03-13 18:44:16
自动化运维 平台化(ansible、git、gitlab、docker、jenkins、elk) 自动化(工具/脚本) 容器化(docker/k8s) 虚拟化 docker和虚拟机的区别 更高效的资源利用。虚拟机是一个完备的系统,容器只是一个进程。 虚拟机启动慢,容器是秒级 一致的运行环境 CI/CD 容器核心概念 镜像Image (1)镜像是一个特殊的文件系统。它除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(例如环境变量)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。 (2)镜像采用的是AUFS,实现分层结构。镜像构建时,会一层层构建,前一层是后一层的基础。每一层构建完就不会再发生改变,后一层上的任何改变只发生在自己这一层。镜像是只读的。创建新镜像时,底层内容不变,只是给镜像增加了一个新层次。 容器Container (1)容器可以认为是镜像的一次执行,是可读写的镜像。容器只是操作系统上的一个进程,进程执行完毕将会退出。不要假定容器会一直存在,应该假设它随时会崩溃。容器一旦出现故障,不要犹豫,直接将它删除,再启动一个。 (2)按照 Docker 最佳实践的要求,容器不应该向其存储层内写入任何数据,容器存储层要保持无状态化。所有的文件写入操作,都应该使用 数据卷(Volume)、或者绑定宿主目录

CentOS-Docker搭建Nacos(单点)

▼魔方 西西 提交于 2020-03-13 15:02:30
通用属性配置 name description option MODE cluster模式/standalone模式 cluster/standalone default cluster NACOS_SERVERS nacos cluster地址 eg. ip1,ip2,ip3 PREFER_HOST_MODE 是否支持hostname hostname/ip default ip NACOS_SERVER_PORT nacos服务器端口 default 8848 NACOS_SERVER_IP 多网卡下的自定义nacos服务器IP SPRING_DATASOURCE_PLATFORM standalone 支持 mysql mysql / empty default empty MYSQL_MASTER_SERVICE_HOST mysql 主节点host MYSQL_MASTER_SERVICE_PORT mysql 主节点端口 default : 3306 MYSQL_MASTER_SERVICE_DB_NAME mysql 主节点数据库 MYSQL_MASTER_SERVICE_USER 数据库用户名 MYSQL_MASTER_SERVICE_PASSWORD 数据库密码 MYSQL_SLAVE_SERVICE_HOST mysql从节点host MYSQL_SLAVE