自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (1)
  • 收藏
  • 关注

转载 Redis 的操作为什么是的原子性的详解

原子性原子性是数据库的事务中的特性。在数据库事务的情景下,原子性指的是:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。对于Redis而言,命令的原子性指的是:一个操作的不可以再分,操作要么执行,要么不执行。Redis操作原子性的原因Redis的操作之所以是原子性的,是因为Redis是单线程的。由于对操作系统相关的知识不是很...

2018-05-31 10:35:05 51259 6

转载 悲观锁、乐观锁的区别及使用场景

定义:悲观锁(Pessimistic Lock): 每次获取数据的时候,都会担心数据被修改,所以每次获取数据的时候都会进行加锁,确保在自己使用的过程中数据不会被别人修改,使用完成后进行数据解锁。由于数据进行加锁,期间对该数据进行读写的其他线程都会进行等待。乐观锁(Optimistic Lock): 每次获取数据的时候,都不会担心数据被修改,所以每次获取数据的时候都不会进行加锁,但是在更新数据的时候...

2018-05-31 09:52:03 17915

转载 秒杀系统设计地址

https://www.cnblogs.com/andy-zhou/p/5364136.html

2018-05-31 10:59:21 170

转载 分布式、集群、微服务的区别

分布式:不同模块部署在不同服务器上作用:分布式解决网站高并发带来问题集群:相同的服务多台服务器部署相同应用构成一个集群作用:通过负载均衡设备共同对外提供服务SOA[组装服务/ESB企业服务总线]业务系统分解为多个组件,让每个组件都独立提供离散,自治,可复用的服务能力通过服务的组合和编排来实现上层的业务流程作用:简化维护,降低整体风险,伸缩灵活微服务[找到服务/微服务网关open API]架构设计概...

2018-05-30 15:18:44 798

原创 实现分布式锁的几种方式

http://blueskykong.com/2018/01/06/redislock/

2018-05-29 11:36:17 136

原创 PHP匿名函数和闭包的总结

匿名函数匿名函数(Anonymous function),也叫闭包函数(closures),允许临时创建一个没有指定名称的函数,最经常用作回调函数(callback)参数的值。匿名函数的实现匿名函数是目前是通过Closure类来实现,匿名函数会产生这个类的对象。自PHP 5.4起,这个类带有一些方法,允许在匿名函数创建后对其进行更多的控制。<!--more-->注意:PHP手册特别说明...

2018-05-28 14:10:05 279

转载 单点登录的实现地址

https://www.cnblogs.com/ywlaker/p/6113927.html

2018-05-25 11:31:04 822

转载 网站架构系统容量评估详解

https://mp.weixin.qq.com/s?__biz=MjM5ODYxMDA5OQ==&mid=2651959542&idx=1&sn=2494bbea9a855e0e1c3ccd6d2562a600&scene=21#wechat_redirect

2018-05-24 18:07:46 1756

转载 mysql binlog文件格式详解

binlog格式分为statement,row以及mixed三种,mysql5.5默认的还是statement模式,当然我们在主从同步中一般是不建议用statement模式的,因为会有些语句不支持,比如语句中包含UUID函数,以及LOAD DATA IN FILE语句等,一般推荐的是mixed格式。暂且不管这三种格式的区别,看看binlog的存储格式是什么样的。binlog是一个二进制文件集合,当...

2018-05-24 17:16:47 3394

原创 Redis集群实现的原理

Redis 集群中内置了 16384个哈希槽,当需要在 Redis 集群中放置一个 key-value 时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点。...

2018-05-24 10:22:03 478

原创 什么是i/0多路复用技术?

I/O 多路复用技术是指利用单个线程处理多个网络 I/O,我们常说的 select、epoll 就是用来轮询所有 socket 的函数。比如 Apache 采用了前者,而 Nginx 和 Node.js 使用了后者,区别在于后者效率更高。由于 I/O 多路复用实际上还是单线程的轮询,因此它也是一种非阻塞 I/O 的方案。异步 I/O 是最理想的 I/O 模型,然而可惜的是真正的异步 I/O 并不存...

2018-05-23 16:57:32 979

转载 HTTP 2.0与HTTP 1.1区别

1、什么是HTTP 2.0HTTP/2(超文本传输协议第2版,最初命名为HTTP 2.0),是HTTP协议的的第二个主要版本,使用于万维网。HTTP/2是HTTP协议自1999年HTTP 1.1发布后的首个更新,主要基于SPDY协议(是Google开发的基于TCP的应用层协议,用以最小化网络延迟,提升网络速度,优化用户的网络使用体验)。 2、与HTTP 1.1相比,主要区别包括HTTP/2采用二进...

2018-05-18 11:43:26 138

转载 为什么MongoDB采用B树索引,而Mysql用B+树做索引

先从数据结构的角度来答。题主应该知道B-树和B+树最重要的一个区别就是B+树只有叶节点存放数据,其余节点用来索引,而B-树是每个索引节点都会有Data域。这就决定了B+树更适合用来存储外部数据,也就是所谓的磁盘数据。从Mysql(Inoodb)的角度来看,B+树是用来充当索引的,一般来说索引非常大,尤其是关系性数据库这种数据量大的索引能达到亿级别,所以为了减少内存的占用,索引也会被存储在磁盘上。那...

2018-05-16 16:57:56 2223 1

原创 微服务到底是什么?

微服务就是将一个完整的系统,按照业务功能,拆分成一个个独立的子系统,在微服务结构中,每个子系统就被称为“服务”。这些子系统能够独立运行在web容器中,它们之间通过RPC方式通信。举个例子,假设需要开发一个在线商城。按照微服务的思想,我们需要按照功能模块拆分成多个独立的服务,如:用户服务、产品服务、订单服务、后台管理服务、数据分析服务等等。这一个个服务都是一个个独立的项目,可以独立运行。如果服务之间...

2018-05-16 15:16:21 1615

转载 MongoDB体系结构

MongoDB是一个可移植的数据库,它在流行的每一个平台上都可以使用,即所谓的跨平台性,在不同的操作系统上虽然略有差别,但是从整体架构上来看,MongoDB在不同的平台上是一样的,如数据逻辑结构和数据存储等等。一个运行着的MongoDB数据库就可以看成是一个MongoDB Server,该Server由实例和数据库组成,在一般情况下,一个MongoDB Server机器上包含一个实例或者多个与之对...

2018-05-15 17:20:32 316

转载 redis,mongodb的使用场景及区别

什么是MongoDB ? MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。 在高负载的情况下,添加更多的节点,可以保证服务器性能。 MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象主要特点 MongoDB...

2018-05-15 16:44:58 2589

转载 Composer的原理

Composer是一个非常流行的PHP包依赖管理工具,已经取代PEAR包管理器,对于PHP开发者来说掌握Composer是必须的.对于使用者来说Composer非常的简单,通过简单的一条命令将需要的代码包下载到vendor目录下,然后开发者就可以引入包并使用了.其中的关键在于你项目定义的composer.json,可以定义项目需要依赖的包(可能有多个),而依赖的包可能又依赖其他的包(这就是组件的好...

2018-05-14 14:00:43 5541 1

转载 redis底层是单线程

一直有个错觉就是,redis底层命令是并发执行的,但今天查看若干资料后发现,redis底层是单线程的,也就是说多客户端向redis服务器发送操作命令,redis底层是串行执行的,这样不禁怀疑这样不是很慢吗?后经过进一步探究,得出结论: 1 单线程并不一定比多线程慢,多线程需要不停切换上下文,本身就有性能损失 2 内存型数据库的瓶颈在IO,因为其数据本身就是在内存里面,不需要频繁的与磁盘做交互,IO...

2018-05-09 17:24:06 464

转载 MySQL中B+Tree索引原理

B+树索引是B+树在数据库中的一种实现,是最常见也是数据库中使用最为频繁的一种索引。B+树中的B代表平衡(balance),而不是二叉(binary),因为B+树是从最早的平衡二叉树演化而来的。在讲B+树之前必须先了解二叉查找树、平衡二叉树(AVLTree)和平衡多路查找树(B-Tree),B+树即由这些树逐步优化而来。B+树的特征:1.有k个子树的中间节点包含有k个元素(B树中是k...

2018-05-09 10:35:12 154

转载 mysql事务隔离级别幻读的解释

未提交读:一个事务可以读取另一个未提交的数据,容易出现脏读的情况。 读提交:一个事务等另外一个事务提交之后才可以读取数据,但会出现不可重复读的情况(多次读取的数据不一致),读取过程中出现UPDATE操作,会多。(大多数数据库默认级别是RC,比如SQL Server,Oracle),读取的时候不可以修改。 可重复读: 同一个事务里确保每次读取的时候,获得的是同样的数据,但不保...

2018-05-07 16:21:15 263

转载 后端架构师技术图谱

https://segmentfault.com/p/1210000014698268?share_user=1030000012902446

2018-05-03 13:47:33 565

转载 MySql最左前缀原则

最左前缀原则通过实例理解单列索引、多列索引以及最左前缀原则实例:现在我们想查出满足以下条件的用户id: mysql>SELECT `uid` FROM people WHERE lname`=’Liu’ AND `fname`=’Zhiqun’ AND `age`=26 因为我们不想扫描整表,故考虑用索引。单列索引: ALTER TABLE people ADD INDEX lname (l...

2018-05-03 10:15:04 454

转载 高并发解决方案图

缓存、队列、应用拆分、限流、数据库分库、分表、服务降级

2018-05-02 16:48:26 312

转载 算法时间复杂度和空间复杂度

时间复杂度:执行算法所需要的时间空间复杂度:执行算法所需要的内存空间常见时间复杂度 例如:常数阶O(1)、线性阶O(n)、平方阶O(n^2)、立方阶O(n^3)、对数阶O(log2n)、nlog2n阶O(nlog2n)、指数阶O(n^n)效率从大到小:O(1) > O(log2n) > O(n) > O(nlog2n) > O(n^2) > O(n^3) >...

2018-05-02 11:43:00 503

全球地区表世界上所有国家或地区的名录

精心整理世界上所有国家或地区的名录,共计246条,包含名称,人口等字段,可下载应用于数据库基础数据构建上层应用,数据格式为json,noSql数据库可以直接导入,sql数据库请自行转换结构。

2022-01-12

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除