读取微博feed伪代码
// 读取我的好友fids
$db = new DB();
$mc = new Memcached();
$_uid = 1; // my uid
$sql = "select * from follow where followuid={$_uid}";
$fbids = $db->fetchAll($sql);
// 缓存了每个用户的500条feed
function GetUserFeed($uid) {
$tbl = 'userfeed_' . ($uid % 8);
$sql = "select * from {$tbl} where uid={$uid}";
return $db->fetchAll($sql);
}
foreach ($fids as $fid) {
$result = GetUserFeed($uid);
$mc_key = "ck_user_feed_id_{$uid}";
$mc->set($mc_key, $result);
}
// 获取最新一条feed
function GetNewFeed($fids) {
$feed = '';
foreach ($fids as $fid) {
$tmp = $mc->get("ck_user_feed_id_{$fid}";
if (!$feed) {
$feed = $tmp;
continue;
} else {
if ($feed['createtime'] < $tmp['createtime']) {
$feed = $tmp
}
}
}
return $feed;
}
读取微博feed伪代码的更多相关文章
- 微博feed系统的推(push)模式和拉(pull)模式和时间分区拉模式架构探讨
sns系统,微博系统都应用到了feed(每条微博或者sns里的新鲜事等我们称作feed)系统,不管是twitter.com或者国内的新浪微博,人人网等,在各种技术社区,技术大会上都在分享自己的feed ...
- 微博Feed流
一.微博核心业务图 二.微博的架构设计图 三.简述 先来看看Feed流中的一些概念: Feed:Feed流中的每一条状态或者消息都是Feed,比如微博中的一条微博就是一个Feed. Feed流:持续更 ...
- Feed系统架构资料收集
完全用nosql轻松打造千万级数据量的微博系统 微博feed系统的push和pull模式和时间分区拉模式架构探讨 关于如何构建一个微博型广播 关于如何构建一个微博型广播2 用 mongodb 储存多态 ...
- [iOS微博项目 - 2.6] - 获取微博数据
github: https://github.com/hellovoidworld/HVWWeibo A.新浪获取微博API 1.读取微博API 2.“statuses/home_time ...
- Feed系统架构资料收集(转)
add by zhj:有些链接已经失效,后续会修改. 原文:http://blog.csdn.net/zhangzhaokun/article/details/7834797 完全用nosql轻松打造 ...
- Pyhton开源框架(加强版)
info:Djangourl:https://www.oschina.net/p/djangodetail: Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC)风格的 ...
- Python开源框架
info:更多Django信息url:https://www.oschina.net/p/djangodetail: Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC) ...
- Redis与Java - 数据结构
Redis与Java 标签 : Java与NoSQL Redis(REmote DIctionary Server) is an open source (BSD licensed), in-memo ...
- 深入浅出ECharts系列(一)地图+散点图
深入浅出ECharts系列(一) 目标 本次教程的目标是实现“微博签到点亮中国”散点图,实现结果如图: 2. 准备工作 a) 首先下载ECharts插件,你可以根据自己的实际需求选择你 ...
随机推荐
- Memcached的使用
为什么要使用Memcached? 1)高并发访问数据库的痛:死锁 2)磁盘IO之痛 3)读写性能完美 4)超简单的集群搭建Cluster 5)开源 6)性能最佳 7)丰富的成功案例 Memcached ...
- js做计算器
js文档: function count(){ var a var txt1=document.getElementById("txt1").value;//获取第一个输入框的值 ...
- shiro重新赋值权限
/** * 重新赋值权限(在比如:给一个角色临时添加一个权限,需要调用此方法刷新权限,否则还是没有刚赋值的权限) * @param myRealm 自定义的realm * @param usernam ...
- HTCondor安装
192.168.30.253 master cd /etc/yum.repos.dwget http://research.cs.wisc.edu/htcondor/yum/repo.d/ht ...
- 如何让nginx显示文件夹目录
1. 如何让nginx显示文件夹目录 vi /etc/nginx/conf.d/default.conf 添加如下内容: location / { root /data/www/f ...
- HashMap多线程并发问题分析
转载: HashMap多线程并发问题分析 并发问题的症状 多线程put后可能导致get死循环 从前我们的Java代码因为一些原因使用了HashMap这个东西,但是当时的程序是单线程的,一切都没有问题. ...
- 【LeetCode】#344 Reverse String
[Question] Write a function that takes a string as input and returns the string reversed. Example: G ...
- 采用flask+uwsgi+nginx架构将flask应用程序部署在腾讯云
最近一星期加班为学校做了一个教师发展中心平台,在此总结一下部署经验 环境:Centos7.0 python2.7.5 1.安装nginx 命令行输入指令:sudo yum install nginx ...
- WINDOWS7(vs2012+wdk7.6) 配置驱动开发环境
合肥程序员群:49313181. 合肥实名程序员群:128131462 (不愿透露姓名和信息者勿加入) Q Q:408365330 E-Mail:egojit@qq.com 1.新建C ...
- Extjs 源码组成(4.0.7)
(function(){})()形式的自执行,构建Ext对象(0~584) 1 设置全局对象EXt:global.Ext = {}, 2 实现了Ext对象面向对象编程的基础方法,如,apply,ex ...