• 展开微博窗口
  • QQ:826945906
  • 微信:u200714928
  • 展开分类目录
胡伟

PHP程序员职业发展路线

根据了解的很多PHP/LNMP程序员的发展轨迹,结合个人经验体会,针对很多程序员对未来的迷茫,特别对技术学习的盲目和慌乱,简单梳理了每个阶段PHP程序员的技术要求,来帮助PHP程序猿们做对照设定学习成长目标。 本文按照目前主流技术做了一个基本的梳理,整个假设是基于PHP程序员的基础比较扎实的情况下进行的设定,并且所有设定都非常具体明确清晰,可能会让人觉得不适,请理解仅代表一家之言。(未来技术变化不在讨论范围)。 第一阶段:基础阶段(基础PHP程序员) 重点:把LNMP搞熟练(核心是安装配置基本操作) 目标:能够完成基本的LNMP系统安装,简单配置维护;能够做基本的简单系统的PHP开发;能够在PHP中型系统中支持某个PHP功能模块的开 …

shell变量

将某一个变量的值,作为另一个变量的变量名的方法: #!/bin/bash name=yushuang var=name res=`eval echo ‘$'”$var”` echo $res   说明:第一步: “$var”  –>name 第二步: echo ‘$'”$var” –>$name 第三步: `eval $name` –>yushuang 一.基础 我们定义一个变量(等号两边不能有空格) FILEPATH=/var/home/sss FILEFILENAME=test001 在引用这个变量是我们可以直接使用$后面跟上变量的名字 比如:       $FILEPATH 还可以 :  ${FILEPATH} 使用${}这种方式的好处是可以方便的实现两个变量的连接,同时看着也比较清楚。 ${FILEPATH}/${FILEFILENAME} 这样便可以表示这个文件的全路径了 ——————————————— …

有趣的锁

使用Redis的 SETNX 命令可以实现分布式锁,下文介绍其实现方法。 SETNX命令简介 命令格式 SETNX key value 将 key 的值设为 value,当且仅当 key 不存在。 若给定的 key 已经存在,则 SETNX 不做任何动作。 SETNX 是SET if Not eXists的简写。 返回值 返回整数,具体为 – 1,当 key 的值被设置 – 0,当 key 的值没被设置 例子 redis> SETNX mykey “hello” (integer) 1 redis> SETNX mykey “hello” (integer) 0 redis> GET mykey “hello” redis> 使用SETNX实现分布式锁 多个进程执行以下Redis命令: SETNX lock.foo <current Unix time + lock timeout + 1> 如果 SETNX 返回1,说明该进程获得锁,SETNX将键 lock.foo 的值设置为 …

Linux系统维护监控工具集sysstat详解

1、关于 Sysstat; Sysstat 是一个软件包,包含监测系统性能及效率的一组工具,这些工具对于我们收集系统性能数据,比如CPU使用率、硬盘和网络吞吐数据,这些数据的收集和分析,有 利于我们判断系统是否正常运行,是提高系统运行效率、安全运行服务器的得力助手; Sysstat 软件包集成如下工具: * iostat 工具提供CPU使用率及硬盘吞吐效率的数据; * mpstat 工具提供单个处理器或多个处理器相关数据; * sar 工具负责收集、报告并存储系统活跃的信息; * sa1 工具负责收集并存储每天系统动态信息到一个二进制的文件中。它是通过计划任务工具cron来运行, 是为sadc所设计的程序前端程序; * sa2 工具负责把每天的系统活跃性息写入总结性的报告中。 …

服务发现 – consul 的介绍、部署和使用

什么是服务发现 相关源码: spring cloud demo 微服务的框架体系中,服务发现是不能不提的一个模块。我相信了解或者熟悉微服务的童鞋应该都知道它的重要性。这里我只是简单的提一下,毕竟这不是我们的重点。我们看下面的一幅图片: 图中,客户端的一个接口,需要调用服务A-N。客户端必须要知道所有服务的网络位置的,以往的做法是配置是配置文件中,或者有些配置在数据库中。这里就带出几个问题: 需要配置N个服务的网络位置,加大配置的复杂性 服务的网络位置变化,都需要改变每个调用者的配置 集群的情况下,难以做负载(反向代理的方式除外) 总结起来一句话:服务多了,配置很麻烦,问题多多 既然有这些问题,那么服务发现就是解决这些问题的 …

Linux traceroute命令详解和使用例子

通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的 linux系统中,我们称之为traceroute,在MS Windows中为tracert。 traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。一条路径上的每个设备traceroute要测3次。输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其IP地址。 在大多数情况下,我们会在linux主机系统下,直接执行命令行:traceroute hostname 而在Windows系统下是执行tracert的命令: tracert hostname 1.命令格式 …

浅谈Redis数据库的键值设计(转)

丰富的数据结构使得redis的设计非常的有趣。不像关系型数据库那样,DEV和DBA需要深度沟通,review每行sql语句,也不像memcached那样,不需要DBA的参与。redis的DBA需要熟悉数据结构,并能了解使用场景。 下面举一些常见适合kv数据库的例子来谈谈键值的设计,并与关系型数据库做一个对比,发现关系型的不足之处。 用户登录系统 记录用户登录信息的一个系统, 我们简化业务后只留下一张表。 关系型数据库的设计 mysql> select * from login; +———+—————-+————-+———————+ | user_id | name | login_times | last_login_time | +———+—————-+————-+———————+ | 1 | ke …

大牛的人生

【swoole-韩天峰】 我最开始工作也是在2家小公司,后来加入腾讯阿里,主要原因还是我坚持学习基础知识,从而得到了这个机会。有几个方面的基础知识,我建议每一位PHP程序员都应该好好学习一下。我推荐几本书给大家,包括深入理解计算机系统、现代操作系统、C程序设计语言、C语言数据结构和算法、Unix环境高级编程、TCP/IP网络通信详解。另外我建议大家学习一下面向对象方面知识,PHP这方面的书不太多,建议看Java面向对象编程、Java编程思想、J2EE这些书。PHP语言基础方面,建议认真地把PHP5权威编程这本书好好读完。另外不光要读,还要照着书中的讲解动手去编程实践。 【多隆-蔡景现】 我坐火车经常一坐就是七个小时,真的感觉太长了。一到上班 …

一致性Hash(Consistent Hashing)原理剖析

引入 在业务开发中,我们常把数据持久化到数据库中。如果需要读取这些数据,除了直接从数据库中读取外,为了减轻数据库的访问压力以及提高访问速度,我们更多地引入缓存来对数据进行存取。读取数据的过程一般为: 图1:加入缓存的数据读取过程 对于分布式缓存,不同机器上存储不同对象的数据。为了实现这些缓存机器的负载均衡,可以使用式子1来定位对象缓存的存储机器: m = hash(o) mod n ——式子1 其中,o为对象的名称,n为机器的数量,m为机器的编号,hash为一hash函数。图2中的负载均衡器(load balancer)正是使用式子1来将客户端对不同对象的请求分派到不同的机器上执行,例如,对于对象o,经过式子1的计算,得到m的值为3,那么所有对对象o …

京ICP备17011078号-1