201907-18 如何使用redis计数器防止并发请求 HOT Redis incr 可以实现原子性的递增,可应用于高并发的秒杀活动、分布式序列号生成等场景。这里我使用它来计数实现一分钟内只接受一次请求。 继续阅读 >
201907-18 程序员如何预估自己的项目开发时间? HOT 项目时间的估算对项目的成败至关重要。项目时间管理包括了项目按时完成所需的各个过程。但是,在实际项目中,经常出现项目延期,估算严重不准确的现象。 继续阅读 >
201907-18 使用Redis实现用户积分排行榜 HOT 排行榜功能是一个很普遍的需求。使用 Redis 中有序集合的特性来实现排行榜是又好又快的选择。 一般排行榜都是有实效性的,比如“用户积分榜”。如果没有实效性一直按照总榜来排,可能榜首总是几个老用户,对于新用户来说,那真是太令人沮丧了。 继续阅读 >
201907-18 深度好文|TCP连接的状态详解以及故障排查 HOT 在程序中表现为,当tcp检测到对端socket不再可用时(不能发出探测包,或探测包没有收到ACK的响应包),select会返回socket可读,并且在recv时返回-1,同时置上errno为ETIMEDOUT. 继续阅读 >
201907-17 PHP时间戳和日期相互转换操作总结 HOT 在php中我们要把时间戳转换日期可以直接使用date函数来实现,如果要把日期转换成时间戳可以使用strtotime()函数实现,下面我来给大家举例说明。 继续阅读 >
201907-17 Redis的面试问题总结,来学习下吧 HOT 又到了春招跳槽高峰期,各位程序员是不是都耐不住心思敲代码,开始要朝着涨薪的方向出发了!今天就来给大家总结下redis的面试问题! 继续阅读 >
201907-17 linux 启动流程分析! HOT 因为在BIOS阶段,计算机的行为基本上被写死了,程序员可以做的事情并不多;但是,一旦进入操作系统,程序员几乎可以定制所有方面。所以,这个部分与程序员的关系更密切。 继续阅读 >
201907-17 深入了解MySQL的索引 HOT 创建合适的索引是SQL性能调优中最重要的技术之一。在学习创建索引之前,要先了解MySql的架构细节,包括在硬盘上面如何组织的,索引和内存用法和操作方式,以及存储引擎的差异如何影响到索引的选择。 继续阅读 >
201907-16 PHP数组遍历的顺序 HOT 在PHP中, 数组是用一种HASH结构(HashTable)来实现的, PHP使用了一些机制, 使得可以在O(1)的时间复杂度下实现数组的增删, 并同时支持线性遍历和随机访问. 继续阅读 >
201907-16 埋在 MYSQL 数据库应用中的17个关键问题! HOT Mysql的使用非常普遍,跟mysql有关的话题也非常多,如性能优化、高可用性、强一致性、安全、备份、集群、横向扩展、纵向扩展、负载均衡、读写分离等。要想掌握其中的精髓,可得花费不少功力,虽然目前流行的mysql替代方案有很多,可是从最小成本最容易维护的角度而言,mysql还是首选。下面从应用场景的角度切入,对mysql的技术点进行组织,写一份知识图谱,方便进行更深入的学习和总结。 继续阅读 >
201907-16 PHP 对输入变量名的自动转换的问题与源码分析 HOT 在第一个 [ 之前的字符中,忽略前置的空格,将 . 和 空格 替换成下划线 _ ; 在第一个 [ 之后的字符,不再进行替换处理: 若后续字符中 没有 ] 时,第一个 [ 替换成 _ ,后续字符串不做转换; 若后续字符中 有 ] 时,取到第一次出现 ] 的位置作为 key,舍弃后续字符。 继续阅读 >
201907-16 Linux常用命令:简单易学,能解决95%以上的问题 HOT Linux是目前应用最广泛的服务器操作系统,基于Unix,开源免费,由于系统的稳定性和安全性,市场占有率很高,几乎成为程序代码运行的最佳系统环境。linux不仅可以长时间的运行我们编写的程序代码,还可以安装在各种计算机硬件设备中,如手机、路由器等,Android程序最底层就是运行在linux系统上的。 继续阅读 >
201907-15 巧用这19条MySQL优化,效率至少提高3倍 HOT MySQL对于IN做了相应的优化,即将IN中的常量全部存储在一个数组里面,而且这个数组是排好序的。但是如果数值较多,产生的消耗也是比较大的。再例如:select id from t where num in(1,2,3) 对于连续的数值,能用between就不要用in了;再或者使用连接来替换。 继续阅读 >
201907-13 MySQL由一个双引号引发的误会 HOT 在写SQL的过程中,一定要小心引号的位置是否正确,有时候引号位置错误,SQL依然是正常的,但是却会导致执行结果全部错误。在执行前必须在测试环境执行测试,结合IDE的语法高亮发现相应的问题。 继续阅读 >
201907-13 用好Git 和 SVN ,轻松驾驭版本管理 HOT Git 和 SVN 孰优孰好,每个人有不同的体验。 Git是分布式的,SVN是集中式的 这是 Git 和 SVN 最大的区别。若能掌握这个概念,两者区别基本搞懂大半。因为 Git 是分布式的,所以 Git 支持离线工作,在本地可以进行很多操作,包括接下来将要重磅推出的分支功能。而 SVN 必须联网才能正常工作。 继续阅读 >
201907-13 干货|MySQL两千万数据大表优化过程,三种解决方案! HOT 使用阿里云rds for MySQL数据库(就是MySQL5.6版本),有个用户上网记录表6个月的数据量近2000万,保留最近一年的数据量达到4000万,查询速度极慢,日常卡死。严重影响业务。 继续阅读 >
201907-13 学会这 2 点,轻松看懂 MySQL 慢查询日志 HOT MySQL中的日志包括:错误日志、二进制日志、通用查询日志、慢查询日志等等。这里主要介绍下比较常用的两个功能:通用查询日志和慢查询日志。 继续阅读 >
201907-12 PHP-FPM和Nginx的通信机制 HOT 由于 CGI 的机制是每处理一个请求需要 fork 一个 CGI 进程,请求结束再kill掉这个进程,在实际应用上比较浪费资源,于是就出现了CGI 的改良版本 FastCGI,FastCGI 在请求处理完后,不会 kill 掉进程,而是继续处理多个请求,这样就大大提高了效率。 继续阅读 >
201907-12 数据库分库分表,何时分?怎样分? HOT 数据库分布式核心内容无非就是数据切分(Sharding),以及切分后对数据的定位、整合。数据切分就是将数据分散存储到多个数据库中,使得单一数据库中的数据量变小,通过扩充主机的数量缓解单一数据库的性能问题,从而达到提升数据库操作性能的目的。 继续阅读 >
201907-12 数据库表连接的简单解释,图文并茂 HOT 实体指的是那些实际的对象,带有自己的属性,可以理解成一组相关属性的容器。关系就是实体之间的联系,通常可以分成"一对一"、"一对多"和"多对多"等类型。 继续阅读 >