找回密码
 注册
【阿里云】2核2G云新老同享 99元/年,续费同价华为云精选云产品特惠做网站就用糖果主机Jtti,新加坡服务器,美国服务器,香港服务器
查看: 758|回复: 10

今天生日,放一点自己写的小玩意儿,顺便唠叨几句

[复制链接]
发表于 2011 年 1 月 10 日 11:23:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
本帖最后由 pengxing 于 2011-1-10 11:28 编辑

       主要是唠叨下这点自己写的小玩意儿是怎么弄来的。

       前一阵申请了JG的F2,不知道放点啥东西。正好硬盘里有一点药酒配方的数据,不过那个源码数据库是文本存的。就找时间给转到mysql里了。

       又找了个以前做blog的闲置米,就给放在F2上了。放上去后又忍不住想把原来那套代码给改一下版。就随便偷了个简单的页面,改成smarty的模板,拿自己以前写的一套访问数据库的类重新给写了下。

       整完了发现自己以前用的smarty还是2.*的,官方都已经smarty3了,就down了一套。结果smarty2的一些函数和smarty3有些许差别。就把模板又收拾了一下,顺便把原来模板改成960宽了。

       然后采集了点数据把原来几百条数据给扩充成1992条数据了。

       再然后为了减轻F2的数据库压力(虽然这点数据不会对数据库有多大压力,但闲着也是闲着,发扬折腾精神),在Smarty缓存后边增加了一套xml文件缓存。

       俺的缓存策略是: 访问页面时候先看Smarty中有没有缓存,如有缓存直接读取Smarty缓存。Smarty缓存是设置的默认半小时失效,Smarty失效后会从XML文件中获取数据,XML缓存策略设置的是一小时。XML文件修改时间已经超过一小时了则从数据库中获取数据并更新XML文件。

       加XML文件缓存还有一个好处就是如果服务器重启了,防止突然大量访问对数据库压力过大(可以修改XML缓存策略时间,让访问者默认先访问XML文件中数据,然后等服务器稳定了再恢复XML缓存策略时间,这样可以给服务器一个相对缓冲的时间)。BTW:这个方法本来是配合memcache缓存做的,用来防止memecache服务器挂了突然对数据库访问过多用的,另:有没在公司大量用memcache的,如果memcache挂了你们都是怎么防止突然增加的大量数据库访问的

       这套小玩意儿没有后台,配置文件是web.config.php,里边有注释,我自己感觉不难理解。有问题可以跟帖问。这些文件可以放在二级目录,只要修改web.config.php中相关配置就可以。数据就是包里的article.sql

       嘿嘿,加个演示:http://www.chairo-penn.com/,顺便说一句,包里build-database是给自己用的一个根据xml自动生成建表语句和对应的存储过程的小东西。只要把table.xml用浏览器打开就能看到结果了。因为主要自己用,就不一一解释里边节点属性都是什么东西了。这套代码要求php5以上,支持mysqli,file_cache_xml和www目录要求有写权限

jg.zip (973.77 KB, 下载次数: 59)

评分

参与人数 1威望 +2 收起 理由
esnak + 2 与wind互相唱和,颇有夫妻相

查看全部评分

Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
发表于 2011 年 1 月 10 日 13:23:03 | 显示全部楼层
【腾讯云】2核2G云服务器新老同享 99元/年,续费同价
东西是不错
但是药的做法很复杂
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

发表于 2011 年 1 月 10 日 13:26:17 | 显示全部楼层
楼主可以把memcache直接省略掉。。。MYSQL也直接省略掉 只保留XML就好了
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

 楼主| 发表于 2011 年 1 月 10 日 13:49:52 | 显示全部楼层
回复 java 的帖子

mysql是要有的,不然模糊查询什么的难做。

xml文件容易坏,而且都生成碎文件就太多了,生成一个文件性能又会很差,更新也比较麻烦。另外有个mysql打底心里踏实点。

memcache本来就没用到,F2没有memcache的环境……

我很想知道大公司里用memcache的时候,如果memcache的机器折了会怎么处理突发的大量数据库请求。曾经看过新浪的人写文章说他们memcache有策略,但不清楚这个策略是怎么做的。我们公司也用到memcache,但公司好像没有想过memcache机器折掉这个前提…
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

y
发表于 2011 年 1 月 10 日 14:36:51 | 显示全部楼层
新浪有个项目,memcachedb,用bsddb做持久层的,在google code上,不过貌似太监很久了。主键查询的话,其实未必需要缓存,mysql本身也有cache的。模板的话推荐下 http://www.twig-project.org/  偷懒省力高性能。。。
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

 楼主| 发表于 2011 年 1 月 10 日 15:03:58 | 显示全部楼层
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

发表于 2011 年 1 月 10 日 16:28:17 | 显示全部楼层
【腾讯云】2核2G云服务器新老同享 99元/年,续费同价
Happy Birthday
Shēngrì kuàilè
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

发表于 2011 年 1 月 10 日 17:59:08 | 显示全部楼层
编程牛人出现了,速给勋章啊,哈哈
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

发表于 2011 年 1 月 10 日 20:05:27 | 显示全部楼层
这里都是高手啊
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

发表于 2011 年 1 月 10 日 20:20:03 | 显示全部楼层
支持一下,
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|金光论坛

GMT+8, 2024 年 11 月 18 日 12:21 , Processed in 0.182861 second(s), 28 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表