12 2021 档案

摘要:多版本并发控制仅仅是一种技术概念,并没有统一的实现标准, 其的核心理念就是数据快照,不同的事务访问不同版本的数据快照,从而实现不同的事务隔离级别。 虽然字面上是说具有多个版本的数据快照,但这并不意味着数据库必须拷贝数据,保存多份数据文件,这样会浪费大量的存储空间。InnoDB通过事务的undo日志巧 阅读全文
posted @ 2021-12-27 14:27 Tracydzf 阅读(103) 评论(0) 推荐(0) 编辑
摘要:explain工具介绍 简单翻译一下,就是explain用于获取查询执行计划(即MySQL是如何执行一个查询的)。 工作中,我们会遇到慢查询,这个时候我们就可以在select语句之前增加explain关键字,模拟MySQL优化器执行SQL语句,从而分析该SQL语句有没有用上索引、是否全表扫描、能否进 阅读全文
posted @ 2021-12-24 13:50 Tracydzf 阅读(69) 评论(0) 推荐(0) 编辑
摘要:SQL优化 此优化方案指的是通过优化 SQL 语句以及索引来提高 MySQL 数据库的运行效率,具体内容如下: 分页优化 例如: select * from table where type = 2 and level = 9 order by id asc limit 190289,10; 优化方 阅读全文
posted @ 2021-12-22 11:07 Tracydzf 阅读(36) 评论(0) 推荐(0) 编辑
摘要:这一篇文章里面,我们要使用的一个第三方库叫做kafka-python。大家可以使用pip或者pipenv安装它。下面两种安装方案,任选其一即可 python3 -m pip install kafka-python pipenv install kafka-python 如下图所示: 创建配置文件 阅读全文
posted @ 2021-12-20 17:58 Tracydzf 阅读(953) 评论(0) 推荐(0) 编辑
摘要:请谨记:使用 Kafka 很容易,但对 Kafka 集群进行搭建、维护与调优很麻烦。Kafka 集群需要有专人来维护,不要以为你能轻易胜任这个工作。 Kafka 是如何做到,对单个程序的多个进程而言,能持续消费,断点续传和并行消费;对多个程序而言又互不影响,各自独立。 一个 Kafka 可以有多个不 阅读全文
posted @ 2021-12-20 16:54 Tracydzf 阅读(227) 评论(0) 推荐(0) 编辑
摘要:这看起来似乎和数据直接写进 MongoDB 里面,然后各个程序读取 MongoDB 没什么区别啊?那 Kafka 能解决什么问题? 我们来看看,在这个爬虫架构里面,我们将会用到的 Kafka 的特性: 与其说 Kafka 在这个爬虫架构中像 MongoDB,不如说更像 Redis 的列表。 现在来简 阅读全文
posted @ 2021-12-20 16:20 Tracydzf 阅读(479) 评论(0) 推荐(0) 编辑
摘要:对于容器技术而言,它实现资源层面上的限制和隔离,依赖于 Linux 内核所提供的 cgroup 和 namespace 技术。 我们先对这两项技术的作用做个概括: cgroup 的主要作用:管理资源的分配、限制; namespace 的主要作用:封装抽象,限制,隔离,使命名空间内的进程看起来拥有他们 阅读全文
posted @ 2021-12-20 13:37 Tracydzf 阅读(564) 评论(0) 推荐(0) 编辑
摘要:死信消息和死信队列定义 Dead Letter Exchange 死信队列(DLX)队列的简称。 另外对于死信消息:通常如果我们的一个消息存在以下的情况下的话则这消息被称为死信消息: 1: 消息被消费端拒绝,使用 channel.basicNack 或 channel.basicReject ,并且 阅读全文
posted @ 2021-12-18 10:53 Tracydzf 阅读(1136) 评论(0) 推荐(0) 编辑
摘要:TTL 其实就是一个消息存在有效时间,也可以说是最大存活时间,通常单位是毫秒 RabbitMQ的TTL的设置,RabbitMQ可以针对消息也可以针对队列来设置TTL: 关于消息的设置:对于特定消息的过期时间的设置,在消息发送的时候可以进行指定,每条消息的过期时间可以不同。 关于队列的设置:Rabbi 阅读全文
posted @ 2021-12-18 10:11 Tracydzf 阅读(673) 评论(0) 推荐(0) 编辑
摘要:redis协议规范 RESP(Redis Serialization Protocol)是Redis客户端和服务端的通讯协议。数据示例如下: +OK\r\n -Error message\r\n :1000\r\n $6\r\nfoobar\r\n *2\r\n$3\r\nfoo\r\n$3\r\n 阅读全文
posted @ 2021-12-14 17:44 Tracydzf 阅读(60) 评论(0) 推荐(0) 编辑
摘要:元类背景 我们先看 Python 下实现单例模式的一种写法: class Singleton(type): def __init__(cls, *args, **kwargs): cls._instance = None super().__init__(*args, **kwargs) def _ 阅读全文
posted @ 2021-12-14 13:47 Tracydzf 阅读(179) 评论(0) 推荐(0) 编辑
摘要:首先说一下Redis Sentinel是怎么工作的?重点描述一下故障转移的过程 1)每个Sentinel以每秒钟一次的频率向它所知的Master,Slave以及其他 Sentinel 实例发送一个 PING 命令。 2)如果一个实例(instance)距离最后一次有效回复 PING 命令的时间超过 阅读全文
posted @ 2021-12-08 17:31 Tracydzf 阅读(165) 评论(0) 推荐(1) 编辑
摘要:入门-示例数据模型 我创建了一个由书籍,页面,作者和图书馆组成的简单数据模型,因此我们可以使用下面模型概述本文的技术。该数据库拥有10,000本书,1,000,000页,1,000位作者和1,000个图书馆。这些页面随机分配给书籍,而这些图书则随机分配给作者和图书馆。 class Library(m 阅读全文
posted @ 2021-12-07 19:20 Tracydzf 阅读(449) 评论(0) 推荐(0) 编辑
摘要:重要的日志模块:redo log 不知道你还记不记得《孔乙己》这篇文章,酒店掌柜有一个粉板,专门用来记录客人的赊账记录。如果赊账的人不多,那么他可以把顾客名和账目写在板上。但如果赊账的人多了,粉板总会有记不下的时候,这个时候掌柜一定还有一个专门记录赊账的账本。 如果有人要赊账或者还账的话,掌柜一般有 阅读全文
posted @ 2021-12-06 10:12 Tracydzf 阅读(62) 评论(0) 推荐(0) 编辑
摘要:为此我们提出一个更高效的解决方案:使用Docker+Selenium Grid。 Selenium Grid是一个分布式WebUI测试工具,可以将测试流程分发到多台服务器上,并行地执行。 Selenium Grid架构中包含两个主要角色:Hub是中心点控制节点,而Node是Selenium的工作节点 阅读全文
posted @ 2021-12-04 10:25 Tracydzf 阅读(316) 评论(0) 推荐(0) 编辑
摘要:介绍 在应用程序开发中,关键的成败阶段是将应用程序推向生产或使应用程序做好生产准备。需要进行某些配置以确保没有损坏,例如安全漏洞或暴露敏感配置(例如密钥)。Django Web 开发也不例外。应用程序在开发中的运行方式与其在生产中的运行方式大不相同。 要在生产中提供服务,Django 应用程序需要具 阅读全文
posted @ 2021-12-03 19:46 Tracydzf 阅读(501) 评论(0) 推荐(0) 编辑
摘要:制作django镜像环境(Commit方式) 下载Ubuntu $ docker pull ubuntu 运行并进入容器 $ docker container run -it ubuntu /bin/bash 下载python /# apt-get install python3 如遇到下载问题如下 阅读全文
posted @ 2021-12-03 19:28 Tracydzf 阅读(248) 评论(0) 推荐(0) 编辑
摘要:本次我们首次尝试用Django2来集成跨境三方支付接口PayPal 首先注册官网 www.paypal.com 以及开发者平台:developer.paypal.com/developer/a… 注册成功后,在沙盒的账号控制页面:developer.paypal.com/developer/a… 会 阅读全文
posted @ 2021-12-03 18:49 Tracydzf 阅读(562) 评论(0) 推荐(0) 编辑
摘要:你刚才说主从复制,那你能具体聊聊主从复制的原理吗? 在redis主从架构中,master负责接收写请求,写操作成功后返回客户端OK。 然后后将数据异步的方式发送给多个slaver进行数据同步,不过从redis 2.8开始,slave node会周期性地确认自己每次复制的数据量。 当启动一个slave 阅读全文
posted @ 2021-12-03 17:19 Tracydzf 阅读(28) 评论(0) 推荐(0) 编辑
摘要:前言 在阅读公司自主封装的jedis源码过程中,了解到sentinel集群连接多个master,当客户端连接sentinel获取对应key的主节点信息时,用到了一致性hash算法。 而最新版本的redis集群cluster模式下,用的hash slot模式。 所以针对这两个问题,积累一下相关知识点, 阅读全文
posted @ 2021-12-03 16:29 Tracydzf 阅读(450) 评论(0) 推荐(0) 编辑
摘要:一、Hash算法引入--分布式缓存 有一个电商平台,需要使用Redis存储商品的图片资源,key为图片名称,value为图片所在服务器的路径。利用随机分配的规则进行分库。总量3000w,以每台服务器存500w的数量,部署12台缓存服务器,并且进行主从复制,架构图如下图: 1.Hash算法优化 目的是 阅读全文
posted @ 2021-12-03 15:37 Tracydzf 阅读(463) 评论(0) 推荐(0) 编辑
摘要:第一,看看你到底有没有全面的了解Redis有哪些功能,一般怎么来用,什么场景用什么数据类型,就怕你只会最简单的kv操作 第二,看看你在实际项目里都怎么玩儿过Redis,经验是否丰富 要是你回答的不好,没说出几种数据类型,也没说什么场景,你完了,面试官对你印象肯定不好,觉得你平时就是做个简单的set和 阅读全文
posted @ 2021-12-03 11:27 Tracydzf 阅读(44) 评论(0) 推荐(0) 编辑
摘要:原文链接:https://juejin.im/post/5c7e4907f265da2dcf62a77c仿支付宝支付结果页,支付完成结果页广告/活动链接配置。 背景 最近需要实现一个功能,关于页面广告自动配置的。这篇随笔是记录对这个需求从分析到实现以及优化的过程,以免以后忘记。 需求描述 某些页面需 阅读全文
posted @ 2021-12-02 11:52 Tracydzf 阅读(104) 评论(0) 推荐(0) 编辑
摘要:背景 最近,有不少用户反映登录我们的APP后,进入首页展示用户数据时要很久很久才能展示出来。刚开始还没在意,以为是用户自己的网络慢导致的,后来有好几个用户都反映了此问题,这不得不引起我们的重视了。 后来经过我们排查日志发现一个现象,提出该问题的用户都是基础数据比较多的,因为我们是金融软件,所以当用户 阅读全文
posted @ 2021-12-02 11:18 Tracydzf 阅读(33) 评论(0) 推荐(0) 编辑
摘要:使用Redis难免会遇到Redis缓存穿透,缓存击穿,缓存雪崩,热点Key的问题。有些同学可能只是会用Redis来存取,基本都是用项目里封装的工具类来操作。但是作为开发,我们使用Redis时可能会遇到上述问题,可能你还不知道这几个名词是什么意思,那么现在就让我们一起来探讨下吧。 首先我们使用Redi 阅读全文
posted @ 2021-12-01 18:42 Tracydzf 阅读(86) 评论(0) 推荐(0) 编辑
摘要:随着互联网技术的不断发展,用户量的不断增加,越来越多的业务场景需要用到分布式系统。而在分布式系统中访问共享资源就需要一种互斥机制,来防止彼此之间的互相干扰,以保证一致性,这个时候就需要使用分布式锁。 分布式锁的特点 互斥性。在任意时刻,只有一个客户端能持有锁 锁超时。即使一个客户端持有锁的期间崩溃而 阅读全文
posted @ 2021-12-01 17:33 Tracydzf 阅读(785) 评论(0) 推荐(0) 编辑
摘要:本文主要讲解的内容有: 联合索引在B+树上的存储结构 联合索引的查找方式 为什么会有最左前缀匹配原则 联合索引的存储结构 下面就引用思否社区的这个问答来展开我们今天要讨论的联合索引的存储结构的问题。来自思否的提问,联合索引的存储结构(https://segmentfault.com/q/101000 阅读全文
posted @ 2021-12-01 17:33 Tracydzf 阅读(166) 评论(0) 推荐(0) 编辑