千与千寻

        高一的同学语文老师在学校阶梯教室给我们放过《千与千寻》,那时候可能还小,很多地方看的不太懂,没留下太深刻印象。十年之后,已出来参加工作多年,到了将近而立之年,再回过头来重看这部影片,有不同的收获。         影片一开始…

redis存储数据占用内存大小估算

最近新项目很多地方需要用到redis,但由于是新项目,不知道数据量能做到多大,服务器数量又有限,从节约成本的角度考虑,服务器是能省则省。这个开发人员提出了新的挑战,对redis的使用必须做好充分的评估和规划。比如做一个在线实时排行榜,如果不…

彻底搞懂递归

说起递归函数,我们的第一反应是很绕,一层又一层,看的很晕。在上一篇文章中,实现排列组合算法很多地方用到了递归,这是一种很重要的设计思想,真正掌握它的原理之后就会豁然开朗:噢!原来这么简单! 我们把“递归”拆成两个字去看: 递:进去 归:出来…

php实现排列组合算法

需求: 在rpg游戏中,游戏各种配置非常复杂,例如:有一个奖励池A,B,C,D,可以根据配置的奖品数量3,从奖品池中随机取出对应数量的商品,这些商品的组合可能是:AAA,AAB,ABB,ABC,BCD…这就需要实现一个排列组合算…

暴乱

最近家里人一直催我想让我去香港帮他们买点药,因为效果好。我说,香港最近有点乱,有些人连老人,警察都打,还是暂时先不去。他们听了觉得很震惊:“谁给他们这么大胆,连警察都敢打?我们看到警察都担心是否不小心犯了事呢……”是啊,谁借给这些人天大的胆…

一次redis内存爆满问题

某天项目突然挂了,通过查看错误日志如下: 通过报错信息,我们可以定位到是redis的内存用完了。 一.查看redis内存使用情况 通过info命令我们可以查看redis内存使用情况,以下是info命令的一些参数说明: [crayon-5d8…

mysql常见的运维及监控

前言 前几天项目的mysql突然挂掉了,所有玩家登陆不进,大家急的团团转。我由此吸取教训,项目上线之后对服务器做相关运维监控显得非常重要。优秀的程序员不但能写出优雅风骚的代码,对线上问题能快速排查定位解决的话也是其能力和价值的体现。下面来谈…

go中的接收器类型与结构体嵌套

go中的指针接收器与值接收器 在go语言中,方法的接收器类型有值和指针两种类型,值接收器跟指针接收器之间的区别在于,在指针接收器的方法内部的改变对于调用者是可见的,然而值接收器的情况不是这样的。通过一段代码来理解这点: [crayon-5d…