.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
Redis缓存穿透和雪崩
一、缓存雪崩 1. 缓存挂了,所有请求都到了数据库了 2. 缓存没有挂,但同时到期,正好把所有缓存都删除了,所有请求都到了数据库了 3. 所有请求都到了数据库,很可能把数据库搞挂 二、缓存雪崩的解决方法 1. 缓存挂了的情况 a. 事发前:实现redis的高可用性(主从+sentinal+cluster) b. 事发时:本地缓存+限流(hystrix) c. 事发后:Redis持久化,重启后从磁盘上加载数据,快速恢复 三、缓存穿透 1. 查询一个不存在的数据,由于没有从数据库里查到,就不放入缓
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 . "] 日
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
高等数学同济第七版课后答案上册
高等数学同济第七版课后答案上册 下载地址: 链接:https://pan.baidu.com/s/185C8RB4Y9pYO84V4Rup1Wg 提取码:p7o4 如果链接失效扫一扫右侧,回复 高等数学答案 即可免费获取 百度文库所有文档原格式下载方法 回复 文库免费下载 高等数学同济第七版课后答案下册
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 只需要指定相对应的服务器
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
Python的互斥锁与信号量
并发与锁 a. 多个线程共享数据的时候,如果数据不进行保护,那么可能出现数据不一致现象,使用锁,信号量、条件锁 b. c.互斥锁 1. 互斥锁,是使用一把锁把代码保护起来,以牺牲性能换取代码的安全性,那么Rlock后 必须要 relase 解锁 不然将会失去多线程程序的优势 2. 互斥锁的基本使用规则: 1 import threading
2 # 声明互斥锁
3 lock=threading.Rlock();
4 def handle(sid):# 功能实现代码
5 lock.acq
SpringMVC的理论
围绕Handler开发 数据Model 页面View SpringMVC的运行流程: 1、用户发送一个请求,所有的请求都会映射到DispatcherServlet(中央控制器的servlet,该servlet会拦截所有的请求) 2、默认会用到DefaultAnnoationHandlerMapping,主要的作用映射url,那个url对应到那个handler。 3、默认使用DefaultAnnoationHandlerAdapter,用来做handler适配, 4、最终会衔接我
判断字符串是否是由相同的字符组成
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 =
05.SpringMVC之请求映射
@RequestMapping是一个用来处理请求地址映射的注解,可用于类或者方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。 @RequestMapping注解有六个属性,下面进行详细的说明。 value:指定请求的实际地址,指定的地址可以是URI Template模式。 value的uri值为以下三类: A) 可以指定为普通的具体值; B) 可以指定为含有某变量的一类值; C) 可以指定为含正则表达式的一类值; method:指定请求的method类型,GET、POST
day02 while循环和格式化
目录 day02 while循环和格式化 今日内容概要 昨日内容回顾 今日内容详细 while循环 格式化 运算符 编码初识 day02 while循环和格式化 今日内容概要 while循环 格式化 运算符 编码初始 昨日内容回顾 变量 变量命名规范: 由数字、字母和下划线组成 不能以数字开头 不能使用Python中的关键字 Python中的变量名区分大小写 变量的命名要具有可描述性 变量名不应该有汉字和拼音 变量命名推荐写法: 驼峰体 下划线 常量 基本数据类型 字符串 整型 布尔值 注释
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
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
深入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
元素定位之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
周排行