Oscaner

「未曾青梅,不见竹马」

AngularJS 实现 Excel 导入导出

由于 AngularJS 属于前端框架, 用官方的话说, 浏览器端不应该有读写文件的权限 因此类似于 fs 这一类的 nodejs 内置模块都是被屏蔽的 想要实现 Excel 导入导出需要另辟捷径 实现 excel.service.ts 文件 需要安装 XLSX package: npm i --save xlsx 1 2 3 4 5 6 7 8 9 10 11 12 13 14...

PHP 面向对象与设计模式

设计模式 设计模式指, 提供一种广泛的可重用的方式来解决我们日常开发中遇到的问题。 设计模式并不一定就是一个类库或者第三方框架, 它们更多的表现为一种思想, 并且广泛地应用在系统之中。 它们也表现为一种模式或者模块, 可以在多个不同地场景下用于解决问题。 设计模式可以用于加速开发, 并且将很多大的想法或者设计, 以一种简单的方式实现。 当然, 虽然设计模式在开发中很有作用, 但是千...

PHP 介绍

PHP 简介 PHP 是通用服务器端脚本编程语言, 其主要用于 WEB 开发以实现动态 WEB 页面, 它也是最早实现将脚本嵌入 HTML 源码文档中的服务端脚本语言之一。 同时, PHP 还提供了一个命令行接口, 其也可以在大多数系统上作为一个独立的 Shell 来使用。 PHP Zend Engine Zend Engine 是开源的、PHP脚本语言的解释器, 为 PHP 提供了...

Memcached 分布式缓存算法

前言 Memcached 虽然被称为分布式缓存服务器, 但服务端并没有集成分布式功能。 Memcached 集群主机不能互相通信传输数据, 它的分布式需要通过客户端的逻辑算法进一步实现。 余数分布法 多服务器分布算法中, 最容易想到的就是余数法。 根据服务器台数的余数进行分散, 求得键的整数哈希值, 再除以服务器台数, 根据其余数来选择服务器。 1 2 3 4 5 6 7 $se...

Memcached 的介绍及使用

基础命令 增删改查 增 1 2 3 4 5 > add key flag expire length # key:给值起一个独特的名字 # flag:标志,要求为一个正整数 # expire:有效期 # length:数据长度 Flag 的意义 Memcached 的基本文本协议要求数据以字符串形式存储。 这意味着,当你需要存入的数据为数组、对象等非字符串...

C++ 数据结构(六)图(2)邻接矩阵

Graph 模板类 1 2 3 4 5 6 7 8 9 10 11 12 13 14 template <typename Tv, typename Te> // 顶点类型、边类型 class Graph { private: void reset() { // 所有顶点、边的辅助信息复位 for (int i = 0; i < n; i++) {...

WEB 负载均衡

前言 日常业务中, 有些时候进行性能扩展是显而易见的, 比如下载服务由于带宽不足而必须进行扩展。 但是, 另一些时候, 很多人一看到站点性能不尽人意, 就马上实施负载均衡等扩展手段, 真的需要这样做吗? 当然, 这个问题也只有他们自己能回答, 除了出于高可用性和就近部署的考虑, 大多数情况下这种行为都显得有些为时尚早。 那么, 是不是一开始就安全不必考虑规模扩展呢? 答案恰恰相反,...

C++ 数据结构 (六) 图 (1) 概述

邻接、关联 G = (V; E) vertex: n = |V| edge|arc : e = |E| 邻接关系 (adjacency): 相邻接的两个顶点之间的关系 关联关系 (incideace): 顶点与邻接边之间的关系 无向、有向 若邻接顶点 U 和 V 的次序无所谓 则 (U, V) 为无向边 (undirected edge) 例: 若 U 是 V 的好友,...

C++ 数据结构 (五) 二叉树 (7) 层次遍历

实现 1 2 3 4 5 6 7 8 9 10 11 template <typename T, typename VST> void BinNode<T>::travLevel(VST &visit) { // 二叉树层次遍历 Queue<BinNodePosi(T)> Q; // 引入辅助队列 Q.enqueue(this); // ...

C++ 数据结构 (五) 二叉树 (6) 中序遍历

递归 1 2 3 4 5 6 7 template <typename T, typename VST> void traverse(BinNodePosi(T) x, VST &visit) { if (!x) return; traverse(x -> lChild, visit); visit(x -> data); traverse(...