.net设计模式-装饰器模式

结构型设计模式:关注类与类之间的关系 装饰器模式:用组合+继承的方式对类作出扩展,可以动态为类型添加功能,甚至调整功能顺序,不修改业务类; 一个抽象类 1 public abstract class AbstractStudent 2 { 3 public int Id { get; set; } 4 public string Name { get; set; } 5 6 public abstract void Stu
分类: 其他 发布时间: 09-09 23:54 阅读次数: 0

Redis缓存穿透和雪崩

一、缓存雪崩 1. 缓存挂了,所有请求都到了数据库了 2. 缓存没有挂,但同时到期,正好把所有缓存都删除了,所有请求都到了数据库了 3. 所有请求都到了数据库,很可能把数据库搞挂 二、缓存雪崩的解决方法 1. 缓存挂了的情况 a. 事发前:实现redis的高可用性(主从+sentinal+cluster) b. 事发时:本地缓存+限流(hystrix) c. 事发后:Redis持久化,重启后从磁盘上加载数据,快速恢复 三、缓存穿透 1. 查询一个不存在的数据,由于没有从数据库里查到,就不放入缓
分类: 其他 发布时间: 09-09 23:54 阅读次数: 0

PHP 输出日志到文件 DEMO

首先需要确保输出文件有权限写入,一般设置权限为 chown -R nginx.nginx 输出的文件路径 如果以上方法还是无效,可以直接将文件设置有777,但是这种方式只能用于测试环境 chmod -R 777 输出的文件路径 然后将日志写入文件,采用追加内容的方式,即不会覆盖之前的日志 $file = "notic_" . date("Ymd") . ".log"; $ct = date("Y-m-d H:i:s", time()); error_log("[" . $ct . "] 日
分类: 其他 发布时间: 09-09 23:54 阅读次数: 0

BOM 与 DOM

BOM(Browser Object Model)是指浏览器对象模型,它使 JavaScript 有能力与浏览器进行“对话”。 DOM (Document Object Model)是指文档对象模型,通过它,可以访问HTML文档的所有元素。 Window对象是客户端JavaScript最高层对象之一,由于window对象是其它大部分对象的共同祖先,在调用window对象的方法和属性时,可以省略window对象的引用。例如:window.document.write()可以简写成:documen
分类: 其他 发布时间: 09-09 23:54 阅读次数: 0

firmware

路由器固件分析题,首先要安装firmware-mod-kit 安装命令: linux> sudo apt-get install git build-essential zlib1g-dev liblzma-dev python-magic linux> git clone https://github.com/mirror/firmware-mod-kit.git linux> cd firmware-mod-kit/src linux> ./configure linux> mak
分类: 其他 发布时间: 09-09 23:54 阅读次数: 0

npm 安装yarn

npm install -g yarn
分类: 其他 发布时间: 09-09 23:54 阅读次数: 0

Pay Back(模拟)

链接:https://ac.nowcoder.com/acm/contest/1086/C 题目描述 "Never a borrower nor a lender be." O how Bessie wishes she had taken that advice! She has borrowed from or lent money to each of N (1 <= N <= 100,000) friends, conveniently labeled 1..N. Payback da
分类: 其他 发布时间: 09-09 23:54 阅读次数: 0

整型及进制转换

整形-int 用于计算和比较 Py 3中只有int Py2 中有int和long(eg:3213123434534L,尾缀的L就表示这是个long类型) 具体范围: 2**31~2**(31-1) int 2**63~2**(63-1) long 进制转换 10进制 - 2进制 整除2,获取余数,输出二进制时,余数反过来,从下到上写,即是他的二进制. 被除数 余数 15 1 7 1 3 1 1 1 0 15 ---> 1111 bin(xxx):十进制转二进制 eg:
分类: 其他 发布时间: 09-09 23:54 阅读次数: 0

高等数学同济第七版课后答案上册

高等数学同济第七版课后答案上册 下载地址: 链接:https://pan.baidu.com/s/185C8RB4Y9pYO84V4Rup1Wg 提取码:p7o4 如果链接失效扫一扫右侧,回复 高等数学答案 即可免费获取 百度文库所有文档原格式下载方法 回复 文库免费下载 高等数学同济第七版课后答案下册
分类: 其他 发布时间: 09-09 23:54 阅读次数: 0

speedtest测速

wget https://raw.github.com/sivel/speedtest-cli/master/speedtest.py chmod a+rx speedtest.py mv speedtest.py /usr/local/bin/speedtest chown root:root /usr/local/bin/speedtest --server 只需要指定相对应的服务器
分类: 其他 发布时间: 09-09 23:54 阅读次数: 0

006.Delphi插件之QPlugins,多服务演示

演示效果如下 演示工程,全部就一个文件,代码如下 unit Frm_Main; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, System.Rtti, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Std
分类: 其他 发布时间: 09-09 23:37 阅读次数: 0

Python的互斥锁与信号量

并发与锁 a. 多个线程共享数据的时候,如果数据不进行保护,那么可能出现数据不一致现象,使用锁,信号量、条件锁 b. c.互斥锁 1. 互斥锁,是使用一把锁把代码保护起来,以牺牲性能换取代码的安全性,那么Rlock后 必须要 relase 解锁 不然将会失去多线程程序的优势 2. 互斥锁的基本使用规则: 1 import threading 2 # 声明互斥锁 3 lock=threading.Rlock(); 4 def handle(sid):# 功能实现代码 5 lock.acq
分类: 其他 发布时间: 09-09 23:37 阅读次数: 0

SpringMVC的理论

围绕Handler开发 数据Model 页面View SpringMVC的运行流程:   1、用户发送一个请求,所有的请求都会映射到DispatcherServlet(中央控制器的servlet,该servlet会拦截所有的请求)   2、默认会用到DefaultAnnoationHandlerMapping,主要的作用映射url,那个url对应到那个handler。   3、默认使用DefaultAnnoationHandlerAdapter,用来做handler适配,   4、最终会衔接我
分类: 其他 发布时间: 09-09 23:37 阅读次数: 0

判断字符串是否是由相同的字符组成

1 /// <summary> 2 /// 判断字符串是否是由相同的字符组成 如 aaaa全是a组成的 bbb全是b组成的 ccc全是c组成的 3 /// </summary> 4 /// <param name="s"></param> 5 /// <returns></returns> 6 public bool IsSameString(string s) 7 { 8 bool result = false; 9 for (int i =
分类: 其他 发布时间: 09-09 23:37 阅读次数: 0

05.SpringMVC之请求映射

@RequestMapping是一个用来处理请求地址映射的注解,可用于类或者方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。 @RequestMapping注解有六个属性,下面进行详细的说明。 value:指定请求的实际地址,指定的地址可以是URI Template模式。 value的uri值为以下三类: A) 可以指定为普通的具体值; B) 可以指定为含有某变量的一类值; C) 可以指定为含正则表达式的一类值; method:指定请求的method类型,GET、POST
分类: 其他 发布时间: 09-09 23:37 阅读次数: 0

day02 while循环和格式化

目录 day02 while循环和格式化 今日内容概要 昨日内容回顾 今日内容详细 while循环 格式化 运算符 编码初识 day02 while循环和格式化 今日内容概要 while循环 格式化 运算符 编码初始 昨日内容回顾 变量 变量命名规范: 由数字、字母和下划线组成 不能以数字开头 不能使用Python中的关键字 Python中的变量名区分大小写 变量的命名要具有可描述性 变量名不应该有汉字和拼音 变量命名推荐写法: 驼峰体 下划线 常量 基本数据类型 字符串 整型 布尔值 注释
分类: 其他 发布时间: 09-09 23:37 阅读次数: 0

Django---CSRF的装饰器,CSRF的流程,JSON数据格式,ajax技术(基于JQ实现)

Django---CSRF的装饰器,CSRF的流程,JSON数据格式,ajax技术(基于JQ实现) 一丶CSRF相关的装饰器 from django.utils.decorators import method_decorator # 给cbv加上装饰器 from django.views import View from django.views.decorators.csrf import csrf_exempt, csrf_protect ### 在FBV模式下 # csrf
分类: 其他 发布时间: 09-09 23:37 阅读次数: 0

RabbitMQ安装和运行

RabbitMQ在Windows下安装和运行 1、下载Erlang: http://www.erlang.org/downloads/19.2 2、下载Windows版RabbitMq: http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6.exe 3、安装并配置环境变量: 增加变量ERLANG_HOME C:\Program Files\erl8.2 path下添加 %ERLANG_HOME
分类: 其他 发布时间: 09-09 23:37 阅读次数: 0

深入vue源码,了解vue的双向数据绑定原理

大家都知道vue是一种MVVM开发模式,数据驱动视图的前端框架,并且内部已经实现了双向数据绑定,那么双向数据绑定是怎么实现的呢? 先手动撸一个最最最简单的双向数据绑定 1 <div> 2 <input type="text" name="" id="text"> 3 <span id="show"></span> 4 </div> 5 6 <script> 7 var text = docume
分类: 其他 发布时间: 09-09 23:37 阅读次数: 0

元素定位之css选择器

理论学习地址:https://www.runoob.com/cssref/css-selectors.html 使用实例: 1. 2. 特别说明:其中 class="form-control selected checked ng-untouched ng-pristine ng-invalid",是指一个或多个类名(classname),定位时使用其中一个或多个即可 3. [attribute*=value] a[src*="runoob"] 选择每一个src属性的值包含子字符串"runoo
分类: 其他 发布时间: 09-09 23:37 阅读次数: 0