201503-06 编程技术缓存写法(三) 上次我们说了多级缓存,本章详细介绍下内存缓存该如何设计。一:分析设计假设有个项目有一定并发量,要用到多级缓存,如下:在实际设计一个内存缓存前,我们需要考虑的问题:1:内存与Redis的数据置换,尽可能在内存中提高数据命中率,减少下一级的压力。2:内存容量的限制,需要控制缓存数量。3:热点数据更新不同,需要可配置单个key过期时间。4:良好的缓存过期删除策略。5:缓存数据结构的复杂度尽可能的低。关于... 继续阅读 >
201503-06 编程技术缓存写法(二) 上次主要讨论缓存读写这块各种代码实现。本篇是就上次的问题接着来,继续看那些年我们各种缓存用法。一:缓存预热上次有同学问过。在第一次加载时,我们的缓存都为空,怎么进行预热。单机Web情况下,一般我们使用RunTimeCache。相对于这种情况下:1:我们可以在启动事件里面刷新voidApplication_Start(objectsender,EventArgse){//刷新}2:单写个刷新缓存页面,上线后手动刷新下、或发布时自动调用刷新、或干脆由... 继续阅读 >
201503-06 编程技术缓存写法(一) 介绍本篇主要说下楼主平常项目中缓存使用经验和遇到过的问题。目录一:基本写法二:缓存雪崩1:全局锁,实例锁2:字符串锁三:缓存穿透四:再谈缓存雪崩五:总结一:基本写法为了方便演示,我们用Runtime.Cache做缓存容器,并定义个简单操作类。如下:publicclassCacheHelper{publicstaticobjectGet(stringcacheKey){returnHttpRuntime.Cache[cacheKey];}publicsta... 继续阅读 >
201503-06 C程序运行时内存结构分析 实验知识静态变量存储在静态存储区,局部变量存储在动态存储区(栈),代码存放在代码区寄存器,EBP指向栈底,ESP指向栈顶,EIP指向正在执行指令的下一条指令,三个寄存器中保存的都是地址,32位系统,地址为4个字节即dword所有写在函数定义里面的语句都编译成指令(驱动CPU)实验代码#include<stdio.h>intfun(inta,intb);intm=10;intmain(){inti=4;intj=5;m=fun(i,j);}intfun(inta... 继续阅读 >
201503-05 爱上Java和JVM的10大理由 Java和JVM已经存在了很长一段时间了,基于这个事实,一些程序员开始将很多事情视为理所当然。今天我们就来说一说“Java之所以能够成为并将继续是软件项目领先平台”的十大理由。1.高性能JVMJava最初的开发目的“一次编写到处运行”,并由虚拟机提供运行平台。没有JVM,Java就必须遵循Ruby和Python的步伐——在痛苦中进一步提高其便携性。随着物联网的出现,一个强大的虚拟机变得越来越重要。2.核心API最让人喜欢的就是Java核... 继续阅读 >
201503-05 PHP魔术方法和魔术常量介绍及使用 有些东西如果不是经常使用,很容易忘记,比如魔术方法和魔术常量。魔术方法(Magicmethods)PHP中把以两个下划线__开头的方法称为魔术方法,这些方法在PHP中充当了举足轻重的作用。魔术方法包括:__construct(),类的构造函数__destruct(),类的析构函数__call(),在对象中调用一个不可访问方法时调用__callStatic(),用静态方式中调用一个不可访问方法时调用__get(),获得一个类的成员变量时调用__set(... 继续阅读 >
201503-05 MySQL性能优化指南 本文的主要目标是介绍如何优化MySQL数据库,通过定期分析表和检查表、定期优化表以及一些常用SQL语句的优化手段,可以帮助你学会在MySQL开发中编写更为高效的SQL。1、定期分析表和检查表分析表的语法如下:ANALYZE[LOCAL|NO_WRITE_TO_BINLOG]TABLEtb1_name[,tbl_name]...以上语句用于分析和存储表的关键字分布,分析的结果将可以使得系统得到准确的统计信息,使得SQL能够生成正确的执行计划。如果用户感觉实际执行计划并... 继续阅读 >
201503-05 大数据量下MySQL插入方法的性能比较 不管是日常业务数据处理中,还是数据库的导入导出,都可能遇到需要处理大量数据的插入。插入的方式和数据库引擎都会对插入速度造成影响,这篇文章旨在从理论和实践上对各种方法进行分析和比较,方便以后应用中插入方法的选择。插入分析MySQL中插入一个记录需要的时间由下列因素组成,其中的数字表示大约比例:连接:(3)发送查询给服务器:(2)分析查询:(2)插入记录:(1x记录大小)插入索引:(1x索引... 继续阅读 >
201503-04 JavaScript性能优化小知识总结 JavaScript的性能问题不容小觑,这就需要我们开发人员在编写JavaScript程序时多注意一些细节,本文非常详细的介绍了一下JavaScript性能优化方面的知识点,绝对是干货。前言一直在学习javascript,也有看过《犀利开发Jquery内核详解与实践》,对这本书的评价只有两个字犀利,可能是对javascript理解的还不够透彻异或是自己太笨,更多的是自己不擅于思考懒得思考以至于里面说的一些精髓都没有太深入的理解。鉴于想让自己有一个提... 继续阅读 >
201503-04 Ngnix 日志管理及 Shell 实现定时完成日志切割 一、日志管理先来看看ngnix的配置文件的server段接下来我们解释一下默认格式的具体意思#log_formatmain‘$remote_addr(远程IP)–$remote_user(远程用户)[$time_local](访问时间)“$request”(请求方式)‘#‘$status(状态302、404、401、403等)$body_bytes_sent(请求体body长度等)“$http_referer”(referer来源信息)‘#‘”$http_user_agent(用户代理)”“$http_x_forwarded_for(被转发的请... 继续阅读 >
201503-04 使用 Shell 脚本监控 Linux 系统进程资源 本文主要介绍Linux平台下的shell脚本使用,主要包括如何对系统和进程资源进行有效的监控。Shell简介Shell语言对于接触LINUX的人来说都比较熟悉,它是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。它没有一般编程语言的“编译–链接–运行”过程。不仅如此,Shell有自... 继续阅读 >
201503-04 大公司最喜欢问的Java集合类面试题 看了一些所谓大公司的JAVA面试问题,发现对于JAVA集合类的使用都比较看重似的,而自己在这方面还真的是所真甚少,抽空也学习学习吧。java.util包中包含了一系列重要的集合类,而对于集合类,主要需要掌握的就是它的内部结构,以及遍历集合的迭代模式。接口:CollectionCollection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)。一些Collection允许相同的元素而另一些不行。一些能排序而另... 继续阅读 >
201503-04 为PHP设置服务器(Apache/Nginx)环境变量 设置环境变量常见的地方为区分开发环境/生产环境,或者定义一些数据库的帐号密码设置Apache环境变量指令设置当前环境变量为DEVSetEnvRUNTIME_ENVIROMENTDEV数据库帐号密码SetEnvMYSQL_USERNAMErootSetEnvMYSQL_PASSWORDroot配置文件格式<VirtualHost*:80>ServerAdminadmin@admin.comDocumentRoot"/var/www/"ServerNamelocalhostSetEnvRUNTIME_ENVIROMENTDEVSetEnvMYSQL_USERNAMEroot... 继续阅读 >
201503-03 MySQL终端管理数据库操作指南 MySQL有很多的可视化管理工具,比如“mysql-workbench”和“sequel-pro-”。现在我写MySQL的终端命令操作的文章,是想强化一下自己对于MySQL的理解,总会比使用图形化的理解透彻,因为我本来就比较喜欢写代码。同时写出来这些文章,是想要给大家当个参考,希望也能对大家有所帮助,有所提升,这就是我为什么要写终端操作MySQL的文章了。注意:MySQL数据库命令不区分大小写。但在MAC的终端,如果你想使用tab自动补全命令,那么... 继续阅读 >
201503-02 Cookie介绍及JavaScript操作Cookie方法详解 本文主要为大家简单介绍了以下Cookie的用途、运行机制,以及JavaScript操作Cookie的各种方法,总结的比较全面,希望能给大家带来帮助。什么是Cookie“cookie是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就会发送这个cookie。你可以使用JavaScript来创建和取回cookie的值。”–w3schoolcookie是访问过的网站创建的文件,用于存储浏览信息,例如个人资料信息。从JavaScript的角... 继续阅读 >
201503-02 什么时候 AngularJS 会超越 jQuery web新手常问的一个问题是“我应该使用哪个框架?”但这个问题却没有‘正确’的答案,通常主要讨论的是AngularJS和jQuery的区别。但它们间的比较在某些方面就像是在比较苹果和橘子的区别,对于一个web应用,没有明确的原因非要使用一个主要的web框架实现。下面一些使用AngularJS要优先于jQuery的场景。当DOM操作是次要时jQuery主要关注于DOM扫描和操作。一个常例是通过用户操作进行DOM元素的添加和修改,例如将... 继续阅读 >