BeWithYou

胡搞的技术博客

运维/工具

mongodb如何随机取出若干条文档


最近在重构德州机器人的服务,原本的机器人列表写在json文件中,每次进程读取文件后放在内存中。这样并不灵活,并且缺乏实时性。这次重构将其放入mongo中,每隔若干时间从服务端PHP全量拉取数据并更新mongo,比如更新机器人的金钱余额等。同时还可以根据程序内实际派遣情况,同步更新mongo中机器人的状态。 遇到一个问题,如何从若干条符合条件的document中选择几条? mongo中的find方法和findOne方法取出……
生活/吐槽

用hexo搭了一个静态博客


昨天把博客从阿里云搬家到了搬瓦工。阿里云虽好,可惜太贵,因为早已不是学生了,也没法享受优惠。 不得不说搬瓦工还是挺良心的,虽然之前的各种优惠没有拿到,但是现在用的这个也还算凑合。19.9刀一年,512M内存,1T流量每月,佛利蒙机房,略卡。 搭了一个SS和一个anyconnect服务端试了下,可以fq看网页,但是视频还是挺卡,可能跟自己的网络环境有关吧。以后每个月买VPN的花费也省了。 把lnmp环境的博客……
运维/工具

mongoDB时间timezone问题


之前有个工具性质的内部系统,为了尝尝鲜,我选择了用mongo作为数据库。中间踩过不少坑,后来整理了一个PPT做了次内部分享。结果就没几个人来听…… 尴尬 今天发现了个有关时间的问题,记录一下。 之前我们记录时间用的是unix时间戳,后来想用按日期分组的功能,发现比较困难。因为mongo里关于日期的分组函数都是基于ISODate型数据的。看起来是这样的: db.getCollection(……
PHP

PDO查询结果直接遍历更省内存


最近导数据的时候发现一个问题,内存有时占用过多导致PHP进程挂掉。 看了下项目封装的PDO,用不同的接口会有不同的内存占用情况。其中一种直接对于PDOStatement对象进行遍历,还有一种是fetchAll()了以后进行遍历。结果当然是后者占用太多内存。 $conn = new PDO('mysql:host=localhost;dbname=mydb', 'username', 'password'); $st = $conn->prepare("SELECT……
运维/工具

有关TRUNCATE不能事务回滚


今天做一个从文本全量导入数据库的功能,每次全量更新表里的数据。想法是在事务里先truncate掉表格,然后批量insert进去,出错则rollback,全部insert成功则commit。 然而发现一个问题,truncate以后即使回滚了也不能回到最初的状态。查了一下,truncate属于DDL语句,执行的时候是隐含着自动commit的,所以并不能在事务里使用。 简要记一下MySQL中数据语言的概念: 数据查询语……
运维/工具

awk扫描分析nginx访问日志


年底感觉没啥活干,尤其是在年底跳槽到新公司,更是没什么重要的项目可以做。老大布置任务,要做一个平台统计每个站点后台的nginx日志,针对url维度分析访问量,加载时间等。 当时设想是这样的,扫描任务部署在线上nginx机器上,定时执行。用shell脚本分析日志,然后找一台开发虚拟机部署管理后台,从shell脚本curl给php接口上报统计结果。 设想的挺好,但是等shell脚本写完以后放到……
  • 上一页
  • 下一页
回到顶部