使用nginx, memcached, libevent, mysql实现url排重
来源:互联网 发布:慕清明知乎 编辑:程序博客网 时间:2024/06/07 06:21
0. 思路
用nginx在前端做反向代理, 把请求转到c写的程序url_query, 这个程序去memcached里取url, 没有则关掉connection.
此时nginx会fallback到另一个C写的程序url_set, 该程序去查mysql数据, 如果有则存memcached, 同时返回HTTP 200, 否则返回HTTP 404.
这样写的好处就是url_query挂掉不影响服务, memcached挂掉也不影响服务.
而且可以在不同的服务器上开多个url_query, url_set, memcached.
1. 数据表
2. config.h
3. url_query.c
4. url_set.c
5. nginx 配置
6. 测试
数据表里有一条url为aaa的记录.
没有做压力测试, 用ab测来效果倒是不错, 不过不是随机的url, 不具备说服力.
7. 注意
这两个C程序写得很简单, 错误处理什么的很少, 还需要改进. 当然, 这只是一个demo
由于url存在memcached的key里, 而memcached的key最大长度为写死为250. 以防url长度超过250, 编译memcached的时候需要把memcached.h中的#define KEY_MAX_LENGTH 250改大一点.
转自http://lyxint.com/archives/205
- 使用nginx, memcached, libevent, mysql实现url排重
- Nginx+Memcached+mysql+php
- Nginx 中使用 Memcached
- Nginx使用Memcached
- Nginx使用memcached集群
- 使用Nginx实现301重定向详解
- 快速URL排重的方法(一)
- 快速URL排重的方法(二)
- nginx实现重定向
- MYSQL group by排重用法
- memcached源码阅读----使用libevent和多线程模型
- memcached源码阅读----使用libevent和多线程模型
- linux下安装配置使用(libevent,memcached,memcache)
- nginx配置url重定向-反向代理
- memcached 和 mysql 结合使用的两种实现选择?
- Url排重Bloom Filter 算法、误差及其他
- URL快速排重算法:Bloom Filter概念和原理
- linux安装JDK+mysql+tomcat+nginx+memcached+memcached session共享
- Android系统手机隐藏代码大全
- 从google 代码仓库repo sync Android4.0 源代码
- 嵌入式数据库--SQLite简单应用(一)
- (2011.12.03) 08_堆排序(heapsort).cpp
- 第一章 --- 第四节(1~3小结)
- 使用nginx, memcached, libevent, mysql实现url排重
- Android应用程序组件Content Provider的启动过程源代码分析
- two years
- Win8 Preview学习资源
- 通过两个点的经纬度计算距离
- android 解析json数据格式
- Bresenham 算法 画直线(VC++)
- 转:ibus 的谷歌拼音输入法发布
- 利用java操作Excel表格(把Excel中的数据导入数据库中)