今天生日,放一点自己写的小玩意儿,顺便唠叨几句
本帖最后由 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目录要求有写权限
东西是不错
但是药的做法很复杂 楼主可以把memcache直接省略掉。。。MYSQL也直接省略掉 只保留XML就好了 回复 java 的帖子
mysql是要有的,不然模糊查询什么的难做。
xml文件容易坏,而且都生成碎文件就太多了,生成一个文件性能又会很差,更新也比较麻烦。另外有个mysql打底心里踏实点。
memcache本来就没用到,F2没有memcache的环境……
我很想知道大公司里用memcache的时候,如果memcache的机器折了会怎么处理突发的大量数据库请求。曾经看过新浪的人写文章说他们memcache有策略,但不清楚这个策略是怎么做的。我们公司也用到memcache,但公司好像没有想过memcache机器折掉这个前提… 新浪有个项目,memcachedb,用bsddb做持久层的,在google code上,不过貌似太监很久了。主键查询的话,其实未必需要缓存,mysql本身也有cache的。模板的话推荐下 http://www.twig-project.org/偷懒省力高性能。。。 y 发表于 2011-1-10 14:36 static/image/common/back.gif
新浪有个项目,memcachedb,用bsddb做持久层的,在google code上,不过貌似太监很久了。主键查询的话,其实未 ...
谢。 Happy Birthday
Shēngrì kuàilè 编程牛人出现了,速给勋章啊,哈哈 这里都是高手啊
支持一下,
页:
[1]
2