- 博客(19)
- 收藏
- 关注
原创 redis雪崩&击穿&穿透
引言Redis常常会遇到的三个问题雪崩:多个key被高并发我们叫做雪崩击穿:单个key被高并发我们叫做击穿穿透:DB和Redis都没有找到此数据我们叫做穿透Redis雪崩什么是雪崩概念:高并发原因导致的,设置了相同的过期时间,导致缓存在同一时刻请求到DB,瞬间压力过重而发生雪崩Redis本身因为高并发崩了Redis失效了注意:雪崩是对很多个key的高并发....
2020-03-23 08:29:10 248
原创 使用Redis实现分布式部署单点登录
因为在电商项目中,我们时常会遇到分布式部署这种例子,当时采用了Nginx负载均衡的策略,导致每一个服务器都需要开辟一个空间来进行用户信息的维护,消耗大量的资源,索引,我当时使用的Redis作为维护用户信息的空间,将用户登录的信息存入Redis中,并且在存入时设置key的过期时间,所有的服务器共用一个Redis,每次进行操作时只需要去Redis中判断这个用户是否存在,存在的话就说明这个用户现在是登录...
2020-03-01 10:49:45 812
原创 如何解决秒杀、超卖等问题呢?高并发、高可用,略施小计~
秒杀系统架构1.1 超卖问题1000件商品第一步查询商品数量查询商品:A用户读商品1000,B用户读商品1000扣减库存:A:1000-1=999写入数据库,B:1000-1=999写入数据库卖了两件商品,商品数量:9992.乐观锁与悲观锁如何解决超卖问题的悲观锁解决的原理A读商品数量是1000,若是悲观锁,A读完数量后商品就加锁(排它锁)B过来读商品数量,A加的锁还没...
2020-02-26 22:18:35 366
原创 Python的七大原则以及24种设计模式
七大原则1.单一职责原则【SINGLE RESPONSIBILITY PRINCIPLE】:一个类负责一项职责2. 里氏替换原则:继承与派生的规则(子类可替换父类)3. 依赖倒转原则:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。即针对接口编程,不要针对实现编程。4. 接口隔离原则:建立单一接口,不要建立庞大臃肿的接口,尽量细化接口,接口中的方法尽...
2020-04-09 16:35:55 602
原创 Python基础之常识概念
概念常识1、深浅拷贝1.1、copy与deepcopy(What)copy:不管多么复杂的数据结构,浅拷贝只会copy一层deepcopy:深拷贝会完全复制原变量相关的所有数据,在内存中生成一套完全一样的内容,我们对这两个变量中任意一个修改都不会影响其他变量2、垃圾回收机制2.1、引用计数原理当一个对象的引用被创建或者复制时,对象的引用计数加1;当一个对象的引用被销毁时,...
2020-03-27 08:13:58 217
原创 Python基础之面向对象
面向对象1、面向对象VS面向过程1. 编程范式1.编程是程序员用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程2.实现一个任务的方式有很多种不同的方式,对这些不同的变成方式的特点进行归纳总结得出来的编程方式类别,即编程范式3.两种最重要的变成范式分别是面向过程编程和面向对象编程2.面向过程编程(Procedurak Programming)1.面向过程编程是...
2020-03-23 22:09:36 170
原创 Redis的主从复制原理
Redis主从复制Redis是什么Redis持久化保证了即便Redis服务重启也不会丢失数据,redis服务重启后会将磁盘上持久化的数据恢复到内存中,若redis服务器的磁盘损坏则可能导致数据丢失Redis读写速度特别快,但也会有读写压力特别大的时候,为了分担I/O过高,Redis支持主从复制,结构是一主多从或者级联结构;Redis主从复制可根据是否是全量分为全量同步和增量同步Red...
2020-03-17 19:31:26 113
原创 对于运维以及运维开发工程师的一些了解
Linux运行是什么什么是Linux运维运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常在他运转的过程中,对他进行维护,它集合了网络、系统、数据库、开发、安全、监控、应用架构、存储于一身的技术运维分类运维开发:是给应用运维开发运维工具的运维平台的应用运维:是给业务上线、维护和做故障排除的,用开发运维开发出来的工具给业务上线、维护、做故障排查系统运维:...
2020-03-16 19:28:27 716 2
原创 MySQL锁机制以及事务隔离
MySQL中的锁MyISAM和InnoDB支持的锁类型1、相对其他数据库而言,MySQL的锁机制比较简单,而其中最显著的特点是不同的存储引擎支持不同的锁机制2、MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking)3、InnoDB存储引擎即支持行级锁(row-level locking),也支持表级锁,但默认情况下是采用行级锁MySQL这3中锁的特性...
2020-03-13 03:20:22 114
原创 关于Python中的三程三器
进程进程是什么进程就是资源分配的最小单位(内存、cpu、网络、IO)一个运行起来的程序就是一个进程什么是程序(程序就是我们存储在硬盘上的代码)硬盘(256G)、内存条(8G)当我们双击图标、打开程序时,实际上就是通过I/O操作(读写)内存条里面内存条就是我们所指的资源CPU分时CPU比你的手速快很多,分别处理每个线程,但是由于太快然后你觉得每个线程都是独占CPUcpu是...
2020-03-12 18:16:27 191
原创 垃圾回收以及内存管理机制
内存管理机制所有公司都会遇到两个最难处理,最恶心的问题:高并发问题内存泄漏问题(例:比如一个大袋子可以装100斤大米,但是却装了200斤大米。虽然我们可以在换个袋子,但是袋子里的大米却不好捡起来)所以公司一般都会有一套容灾系统:程序崩了,瞬间切换到另一台服务器让它跑起来,数据一般都不会放在同一台服务器上我有1个G的内存,一个游戏需要800M的内存,其他的需要300M的内存,它...
2020-03-11 22:38:25 81
原创 读写文件以及字符编码是怎么回事呢
读写文件read(): 指定读取指定大小的文件(默认一次读取所有)readline(): 逐行读取,适合读大文件readlines(): 一次性读取所有文件, 将文件按行读取成列表经典面试题:现在有一个5G的文件,用python写入另一个文件里我们使用了一个 while 循环来读取文件内容,每次最多读取 8kb 大小这样可以避免之前需要拼接一个巨大字符串的过程,把内存占用降低非常多。...
2020-03-11 22:32:31 185
原创 四大高阶函数为什么称之为高阶函数
高阶函数在Python中,变量可以指向函数函数名也是变量既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数map()格式:map(function,iterable,. . . )功能:将第一个参数function依次作用在参数可迭代对象中的每一个元素上,返回包含每次function函数返回值的新迭代器参数:func...
2020-03-11 22:25:56 267
原创 数据库的引擎以及索引的概念
索引1.索引由数据库中一列或多列组合而成,其作用是提高对表中数据的查询速度。索引的优点是可以提高检索数据的速度索引的缺点是创建和维护索引需要耗费时间。索引可以提高查询速度,会减慢写入速度。2.索引的分类普通索引唯一索引全文索引5.6后InnoDB只支持英文单列索引多列索引空间索引 spatial//删除主键 非自增的,自增时只有一个主键时不允许删除alter table...
2020-03-11 22:18:16 227
原创 Docker介绍
闲来无事,我们来认识一下什么是Docker,请跟随我来逛一逛Docker的世界~什么是DockerDocker是应用最广发的开源容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中Docker实质就像虚拟机,如同一个具有独立操作系统的真实机器虚拟机是有真正linux内核的,真实需要通过.ios文件安装操作系统而我们的Docker共享linux宿主机内核,只有一个lin...
2020-03-08 20:40:09 152
原创 Docker-Compose浅谈
Docker Compose是什么Compose是一个定义和管理多容器的工具,使用python语言编写使用Compose配置未见描述多个容器应用的架构,例如使用什么镜像、数据卷、网络、映射端口等然后一条命令管理所有服务,比如启动、停止、重启等Docker Compose什么时候使用给大家一个情景,当我们公司部署Django项目,需要Nginx+MySQL+Redis+Celery等...
2020-03-05 15:27:42 421
原创 关于Python with上下文管理协议以及自定义上下文管理
上下文管理器上下文管理器是对Context Manager的翻译,上下文是context直译的叫法,在程序中用来表示代码执行过程中所处的前后环境在文件操作时,需要打开,关闭文件,而文件处于正在读写操作时,就是处在文件操作的上下文中,也就是文件操作环境中语法with语法是Python提供的一种简化的语法,在python2.5开始引入的一种与异常处理相关的功能,适用于对资源进行访...
2020-03-01 19:42:06 310
原创 【一路走一路停,一停就躺下】Vue父子组件分页
写一个父子组件传参数来显示分页…一、建立vue的过程就不详细说明了vue init webpack end_6二、在components下建立一个首页页面(index.vue)and一个分页页面(page.vue)三、现在index.vue下四、我们进入到page.vue中五、我们可以登录到index首页查看效果功成身退了。。。...
2019-11-19 19:59:38 195
原创 三元运算符简述
今天在判断语句上因为嵌套懵了,代码的冗长让我很难受,所以找到这个更为精简的运算符来判断——————————————————————————三元运算符概念:三元运算符就是在赋值变量的时候,可以直接加判断,然后再赋值三元运算符的功能与’if…else’语句一致,他在一行中书写,代码十分精简,执行效率更高格式:[on_true] if [expression] else [on_fa...
2019-10-24 00:34:58 609
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人