随笔分类 -  亿级流量电商详情页系统实战

摘要:讲解分布式数据存储的核心算法,数据分布的算法 hash算法 -> 一致性hash算法(memcached) -> redis cluster,hash slot算法 用不同的算法,就决定了在多个master节点的时候,数据如何分布到这些节点上去,解决这个问题 1、redis cluster介绍 re 阅读全文
posted @ 2020-04-18 23:46 尐海爸爸 阅读(215) 评论(0) 推荐(0) 编辑
摘要:1、单机redis在海量数据面前的瓶颈 2、怎么才能够突破单机瓶颈,让redis支撑海量数据? 3、redis的集群架构 redis cluster 支撑N个redis master node,每个master node都可以挂载多个slave node 读写分离的架构,对于每个master来说,写 阅读全文
posted @ 2020-04-18 23:23 尐海爸爸 阅读(134) 评论(0) 推荐(0) 编辑
摘要:1、哨兵节点的增加和删除 增加sentinel,会自动发现 删除sentinel的步骤 (1)停止sentinel进程(2)SENTINEL RESET *,在所有sentinel上执行,清理所有的master状态(3)SENTINEL MASTER mastername,在所有sentinel上执 阅读全文
posted @ 2020-04-18 23:06 尐海爸爸 阅读(207) 评论(0) 推荐(0) 编辑
摘要:1、哨兵的配置文件 sentinel.conf 最小的配置 每一个哨兵都可以去监控多个maser-slaves的主从架构 因为可能你的公司里,为不同的项目,部署了多个master-slaves的redis主从集群 相同的一套哨兵集群,就可以去监控不同的多个redis主从集群 你自己给每个redis主 阅读全文
posted @ 2020-04-18 21:51 尐海爸爸 阅读(297) 评论(0) 推荐(0) 编辑
摘要:1、sdown和odown转换机制 sdown和odown两种失败状态 sdown是主观宕机,就一个哨兵如果自己觉得一个master宕机了,那么就是主观宕机 odown是客观宕机,如果quorum数量的哨兵都觉得一个master宕机了,那么就是客观宕机 sdown达成的条件很简单,如果一个哨兵pin 阅读全文
posted @ 2020-04-17 23:56 尐海爸爸 阅读(239) 评论(0) 推荐(0) 编辑
摘要:1、两种数据丢失的情况 主备切换的过程,可能会导致数据丢失 (1)异步复制导致的数据丢失 因为master -> slave的复制是异步的,所以可能有部分数据还没复制到slave,master就宕机了,此时这些部分数据就丢失了 (2)脑裂导致的数据丢失 脑裂,也就是说,某个master所在机器突然脱 阅读全文
posted @ 2020-04-17 23:38 尐海爸爸 阅读(210) 评论(0) 推荐(0) 编辑
摘要:1、哨兵的介绍 sentinal,中文名是哨兵 哨兵是redis集群架构中非常重要的一个组件,主要功能如下 (1)集群监控,负责监控redis master和slave进程是否正常工作(2)消息通知,如果某个redis实例有故障,那么哨兵负责发送消息作为报警通知给管理员(3)故障转移,如果maste 阅读全文
posted @ 2020-04-17 23:30 尐海爸爸 阅读(172) 评论(0) 推荐(0) 编辑
摘要:你如果要对自己刚刚搭建好的redis做一个基准的压测,测一下你的redis的性能和QPS(query per second) redis自己提供的redis-benchmark压测工具,是最快捷最方便的,当然啦,这个工具比较简单,用一些简单的操作和场景去压测 1、对redis读写分离架构进行压测,单 阅读全文
posted @ 2020-04-17 22:43 尐海爸爸 阅读(441) 评论(0) 推荐(0) 编辑
摘要:1、启用复制,部署slave node wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gztar -xzvf tcl8.6.1-src.tar.gzcd /usr/local/tcl8.6.1/unix/./configure 阅读全文
posted @ 2020-04-17 22:33 尐海爸爸 阅读(163) 评论(0) 推荐(0) 编辑
摘要:1、复制的完整流程 (1)slave node启动,仅仅保存master node的信息,包括master node的host和ip,但是复制流程没开始 master host和ip是从哪儿来的,redis.conf里面的slaveof配置的 (2)slave node内部有个定时任务,每秒检查是否 阅读全文
posted @ 2020-04-16 23:46 尐海爸爸 阅读(186) 评论(0) 推荐(0) 编辑
摘要:1、主从架构的核心原理 当启动一个slave node的时候,它会发送一个PSYNC命令给master node 如果这是slave node重新连接master node,那么master node仅仅会复制给slave部分缺少的数据; 否则如果是slave node第一次连接master nod 阅读全文
posted @ 2020-04-16 23:40 尐海爸爸 阅读(341) 评论(0) 推荐(0) 编辑
摘要:1、redis replication的核心机制 (1)redis采用异步方式复制数据到slave节点,不过redis 2.8开始,slave node会周期性地确认自己每次复制的数据量(2)一个master node是可以配置多个slave node的(3)slave node也可以连接其他的sl 阅读全文
posted @ 2020-04-16 23:34 尐海爸爸 阅读(212) 评论(0) 推荐(0) 编辑
摘要:1、redis高并发跟整个系统的高并发之间的关系 redis,你要搞高并发的话,不可避免,要把底层的缓存搞得很好 mysql,高并发,做到了,那么也是通过一系列复杂的分库分表,订单系统,事务要求的,QPS到几万,比较高了 要做一些电商的商品详情页,真正的超高并发,QPS上十万,甚至是百万,一秒钟百万 阅读全文
posted @ 2020-04-16 23:31 尐海爸爸 阅读(554) 评论(0) 推荐(0) 编辑
摘要:1、企业级的持久化的配置策略 在企业中,RDB的生成策略,用默认的也差不多 save 60 10000:如果你希望尽可能确保说,RDB最多丢1分钟的数据,那么尽量就是每隔1分钟都生成一个快照,低峰期,数据量很少,也没必要 10000->生成RDB,1000->RDB,这个根据你自己的应用和业务的数据 阅读全文
posted @ 2020-04-16 23:01 尐海爸爸 阅读(236) 评论(0) 推荐(0) 编辑
摘要:1、AOF持久化的配置 AOF持久化,默认是关闭的,默认是打开RDB持久化 appendonly yes,可以打开AOF持久化机制,在生产环境里面,一般来说AOF都是要打开的,除非你说随便丢个几分钟的数据也无所谓 打开AOF持久化机制之后,redis每次接收到一条写命令,就会写入日志文件中,当然是先 阅读全文
posted @ 2020-04-16 22:38 尐海爸爸 阅读(190) 评论(0) 推荐(0) 编辑
摘要:1、如何配置RDB持久化机制 redis.conf文件,也就是/etc/redis/6379.conf,去配置持久化 save 60 1000 每隔60s,如果有超过1000个key发生了变更,那么就生成一个新的dump.rdb文件,就是当前redis内存中完整的数据快照,这个操作也被称之为snap 阅读全文
posted @ 2020-04-16 22:27 尐海爸爸 阅读(178) 评论(0) 推荐(0) 编辑
摘要:1、安装单机版redis wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz tar -xzvf tcl8.6.1-src.tar.gz cd /usr/local/tcl8.6.1/unix/ ./configure make 阅读全文
posted @ 2020-04-16 22:10 尐海爸爸 阅读(134) 评论(0) 推荐(0) 编辑
摘要:(1)首先在三台机器上配置对本机的ssh免密码登录ssh-keygen -t rsa生成本机的公钥,过程中不断敲回车即可,ssh-keygen命令默认会将公钥放在/root/.ssh目录下cd /root/.sshcp id_rsa.pub authorized_keys将公钥复制为authoriz 阅读全文
posted @ 2020-04-16 22:03 尐海爸爸 阅读(225) 评论(0) 推荐(0) 编辑
摘要:为什么要装perl?我们整个大型电商网站的详情页系统,复杂。java+nginx+lua,需要perl。 perl,是一个基础的编程语言的安装,tomcat,跑java web应用 yum install -y gcc wget http://www.cpan.org/src/5.0/perl-5. 阅读全文
posted @ 2020-04-16 21:37 尐海爸爸 阅读(174) 评论(0) 推荐(0) 编辑
摘要:卸载centos7自带openjdk 找出openjdk文件 rpm -qa|grep java 删除 rpm -e --nodeps java-1.8.0-openjdk-devel-1.8.0.242.b08-0.el7_7.x86_64 rpm -e --nodeps java-1.8.0-o 阅读全文
posted @ 2020-04-16 21:28 尐海爸爸 阅读(240) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示