日志 关于我们 加入我们
  设计师必去的17个设计类网站
sunny | 时间:2012年05月31日
网页设计
 

1、中国logo设计制作网(以logo设计为主的特色网站,气氛活跃,提供公益培训,免费设计服务,2007年成立个人认为是同行业发展做快的)

2、DDC传媒(强调数字艺术的综合性网站)

3、ad110(云集非常多大师作品以及他们的网站导航)

4、鲜创意(综合性网站)

5、数字驿站(很不错的素材网)

6、中国美术家(内容非常的全面,但是速度非常慢)

7、中国CG联盟(数字内容创作、电影电视制作,视觉娱乐设计)

8、火星时代动画网(不说了,看题目就知道)

9、视觉同盟网(综合性网站)

10、素材中国(不说了,看题目就知道)

11、设计在线(新闻绝对是业界最及时的)

12、视觉中国(新新设计师的代表性网站,有些杂,速度也不快)

13、设计前沿(从事工业设计的同胞们必去)

14、设计师家园(建筑与室内设计师非去不可)

15、亚洲CI网(网站本身不怎么样,但是论坛非常不错,高手云集)

16、Arting365(有些不错的独门信息及作品)

17、台湾创意设计中心(了解台湾设计的必去站点)
 

Tag:平面设计 网页设计 设计素材
阅读全文 »
  用户名注册
yangivy | 时间:2012年05月25日
用户体验
 

    用户在注册用户名的时候,会时常发生这样的困扰,当所有注册信息都填写完,点击提交后,他会提示,此账号已经被注册,所有流程都要重头走一遍。发生这样的状况,相信所有人都会很郁闷,所以在注册用户名的时候,很需要有这样的提示,如下截图:


    有了提示,用户就可以很清楚的知道自己注册的用户名是否符合,这样也节约了双方的人力物力,也给用户带来了很好的体验。

阅读全文 »
  设计是O――关于设计趋势的思考
sunny | 时间:2012年05月25日
网页设计
 

  设计是O——关于设计趋势的思考

  设计是O,O是什么,O是Origin原点。

  设计需要创新的精神,才能产生Big Bang!而设计师的修为高低在于:你是否恰到好处的占领了原点的前端。

  近几年,经常听到一个词“趋势”,大致意思是:事物发展的动向。这个词用在观察金融交易市场规律上大致可取,但是用在设计发展规律上就不妥了。

  举例说明:年年都有所谓的XX年LOGO设计趋势的文章,列举一些案例进行圈圈点点。但一年之内有关logo的设计项目有多少呢?仅凭借所谓的“趋势”去概定当年的全部设计风格,这是十分可笑的事情。

  而更令人不解的是,许多人将此借镜为鉴,并不理会其是否合适自身项目,还或有表示,对此不认同的他人是不懂趋势。私以为,这不是“趋势”,而是“逼势”。当“趋势”成了“逼势”那便成了一件坏事,但事实上“趋势”本身并不坏。

  Metro UI风格设计是近期比较经常被提到的一个新的“趋势”,据说Metro设计风格的灵感来源于机场和地铁系统所使用的视觉语言,但其实早在十年前,整个荷兰设计界就已把所谓Metro UI风格运用的相当普遍了,其中主要以登贝设计Studio Dumber和Dietwee为代表,且当时深圳众多的设计公司也多有采用Metro UI风格。而如今微软则是运用强大的影响力和专利意识恰到好处的占领了原点的前端。


  Metro UI风格设计,重在平面排版设计。

  平面排版设计要求越高,简单的东西便越难做。Metro UI风格设计的元素需要很严谨的空间规划,字体在块面上的位置及留白相当重要,而块面在版块中的布局也需要很好的拿捏。

  但简体中文在空间中的位置却相对难以控制,在一块方形的块面上英文字显得潇洒上流,中文字则莫非如是,怎么可以做出好的Metro UI风格设计呢?

  其实Metro UI风格的应用,如果想要简体中文得体,那色块恐怕比英文要大,空间也需要稍微大一点,无论在哪个平台,网页、操作界面、平面媒体、广告等等,越是简洁越难玩得透,拿微软官网的中文版和英文版来比较,由于色块空间与字号对比不理想等原因,中文版的视觉效果明显较弱。

  静下心来,认真思考游戏、网页、交互等问题后,我认为游戏页面的视觉设计最主要的是对游戏元素的提炼,而只有玩了游戏才能更好的理解这个游戏的精髓。如果连产品都不甚了解,是难以将产品包装的创意设计做好的。对于游戏元素的提炼,并不在于偏向或轻或重的质感风格,将网站复杂化,而是需要看设计师对游戏风格的把握及运用。  
 
  所谓“趋势”其实就是潮流,潮流的名字本身就很好,「潮」代表其一阵涨一阵退,后浪推前浪,「流」则代表其永不停下来朝一个方向前进。如果潮流是一条河,你是做潮流前端带领者,还是后面的追随者又或者是置身在外的旁观者?潮流总是循环往复,十数年后健美裤又以微弱的势头东山再起,不过这次它变幻成了颇受街头潮人追捧的打底裤,也叫裤袜、紧腿裤、绑腿裤,英文名字叫Legging。

  上世纪80年代,青少年的招牌服饰是萝卜裤。现在哈尼裤来了,只是改良版的萝卜裤。
 
  设计就是在人类文化长河里一个越滚越大越充实的O,不断的加以新元素融合老元素,一波又一波,循环。潮流趋势是“循环”的,对于潮流的选择,关键要符合自己的风格,而不是盲目地跟着每每的流行而变化,适合自己才是最重要的。说到底,或许是我们失去了自信。那么,我们的自信哪里去了?我希望我们可以作为占领潮流前端,而不是跟着别人的屁股,我现在还是一个跟着别人屁股走的人,

  但仍希望有朝一日可以作为一个带领者,而不是跟附趋势,特写此文与各位共勉。

  总结:本文并不是批判Metro UI风格,也不是批判喜欢Metro UI风格的人,只是不想让“趋势”成了“逼势”,要玩好一个风格首先要知道是否合适自家产品,如何扬长避短。形式很重要,风格也很重要,还要看怎样巧妙运用与结合。
 

Tag:网页设计 趋势
阅读全文 »
  网站用户体验不容忽视
yangivy | 时间:2012年05月17日
用户体验
 

    用户是一个网站赖以生存的核心,就像现在的企业奉行的一句话“顾客就是上帝”,的确,你只有给用户提供方便,快捷的服务才能获得更多更好的效果。那么提高网站用户体验度是一个网站不容忽视的,下面是几个提高网站用户体验度的方法,希望可以跟大家交流一下!

    1、网站速度快

    用户第一次进入网站通常是通过点击链接或在浏览器输入网址,不管是通过哪种方式进来,只有能快速打开的网站才能获得用户的第一次认可,如果超过五秒钟你的网站还打不开,通常就会被直接关闭了,所以首先我们要选择一款高速的主机,并把网站代码优化精简以优化网站速度,当然仅仅是快速还不够,你的网站服务器要稳定,不要老是打不开,如果有几次网站都打不开,用户也不会信任你的网站了。

    2、页面设计美观、简洁

    网站整体风格的设计要美观、简洁大方,这是给用户留下良好第一印象的重点。注意色彩的搭配,不要太花哨,也不要太单调了,我建议一般使用一种主色调再加以一两种辅助色调,网站要主次分明以提高页面可读性。

    3、网站的专业性

    我们不是做门户,所以尽量不要一个网站包含太多主题的内容,最好是专注于某一个行业,将目标客户定位。

    4、联系方便

    在网站的显要位置留下你的联系方式,要让访客能够轻松的找到你的联系方式,用户使用越方便,你的网站转化率会越高。

    5、留言反馈

    任何一个网站都不可能完美,所以我们应该注重用户的反馈,访客频繁的反馈和咨询,会加强网站的可信度、也会拉进您和用户之间的距离。更加重要的是,如果你都能及时回答,这会提升你的形象,给所有的访问者留下好的印象。

    6、时常更新

    网站为什么要天天更新?试想,如果访客每天来你的网站看到的内容都是一样,没有新内容产生,慢慢的,他就不会再来了,因为没有可看性了。

    用户是基础,这个是无法改变的。对于一个网站来说是否获得了成功,不是看他在搜索引擎的排名有多高,也不是看他的关键字做得好不好,而是看他是否让他的用户真的感兴趣,自愿的留在你的网站。 所以基础是需要巩固的。

阅读全文 »
  简述设计中大气的诠释
sunny | 时间:2012年05月17日
网页设计
 

恐怕现在的设计师最怕听到的两个字就是“大气”。
“你对设计稿有什么要求呢?” “哦,我希望大气一些!”“。。。。”
“您觉的哪些地方不满意呢?”“嗯,就是希望再大气一些!”“。。。。”
“你看这次的视觉稿,风格怎么样?”“挺好的,稍微大气一些就OK”“。。。。”
这些对话一点也不夸张,都是同行们常常抱怨的话题。设计师已经无数次倒在了这两个字下。
不过,抱怨并不能解决所有问题。那么我们该考虑如何解决这个令人头疼的形容词呢? 简单分析,从两种不同类型的需求说起

第一种:商务性质中的“大气”

简约的页面风格容易受到用户的喜欢,而且能给用户带来一定的安全感。拿IBM这个来说,页面给人的第一感觉是专业和安全。焦点图构成也比较简单,左侧醒目的标语用了简单的渐变,右侧也运用了简单的几何图形。下面几个例子也是如此,还有一些没有列举出来的,比如大家很熟悉的apple官网。

商务性质的页面表现“大气”的感觉一般注意几点:

1.留白。大量留白会使页面有空间感,不会因为页面内容密密麻麻而产生厌恶。

2.尽量少的颜色。太多颜色控制不好会容易失去整体平衡,主要在制作前定一个主色系和辅助色系。可以发现上面列举的这几个网站色彩使用的数量都不是很多,一个主色,一个辅助色,一个点缀色。

商务页面主要以凸显内容和展示信息为主,而且给访问用户有一定的安全感和信任感。所以建议不要用比较花哨的元素和另类的设计风格。

第二种:活动性质中的“大气”

这类的页面,“大气”的实现比较复杂,当然也不能用上一种方法。比如一个开业庆典的页面,如果用白色的底,简单的图形和文字,可能就烘托不出好的氛围。方案往往被否定的原因在于烘托气氛不够。

所以在选取素材的时候,可以首先考虑,山河湖海,全景图,或者有代表性的建筑或者标识;再者可以挑选带有积极向上性质的元素,如“鸽子,绸带,马路,教堂,屋顶、太阳、贵族元素”等。

中国风是近年设计师们喜欢使用的一种风格,利用传统的中国元素加上现在的设计风格而形成。
标志性的元素:水墨风格、书写体、古代物品(瓷器,鼎之类)


以上只是笔者对“大气”的简单理解,好的设计要多从细节入手,即使简约的设计风格也要谨慎处理细节。比如小的阴影,光泽,质感等等。把握好全局,才能控制你的风格。试图和需求人良好的沟通,表达设计师自己的想法和建议。在修改设计稿的时候,对方所想要的“大气”可能只是某个元素问题,但他也确定不了是哪个部分有问题,所以会用含糊的概念去告诉你。但作为设计师本人也要仔细思考,先尝试关键部分的内容修改,比如尝试换新的字体,去掉多余元素等等。

总之,不断的探索和尝试,所有的需求都是浮云。

 

Tag:大气 设计 网页设计
阅读全文 »
  平面与网页设计的差异性
sunny | 时间:2012年05月11日
网页设计
 

  日常设计工作中,我们不仅要做平面设计也要做网页设计,涉及的领域不一样,设计的侧重点也不一样。看似都是设计,但它们还是存大区别的,下面我们来分析一下同样作为视觉传达设计,它们之间存在什么差异:
  视觉元素

  在色彩方面平面设计与网页设计使用的色彩模式完全不同,平面设计因为后期的实现依赖于印刷,所以采用CMYK的色彩模式,而网页根据其显像方式使用RGB的色彩模式。平面设计时的色彩运用注重视觉的冲击力及视觉流的引导(在这点上与网页设计中的BANNER设计相类似),而网页设计(产品类)更注重的是信息结构关系的梳理,如果将色彩运用的过多过强,很容易引起视觉的疲劳感。

  我们平时在设计过程中,平面设计的字体选用更为自由一些,不用担心后期实现的问题,所有的文字最后都会输出为图形进行印刷,而网页设计就需要考虑的更为全面,并且在字体的选用范围上也很小,为了让输出的成品大小不对服务器造成压力,基于html的特性,所有字体都是根据用户操作系统内默认字体而定的,当然近年随着技术的沿革与发展,这个差距也逐步在缩小,目前通过html的API可以实现个性化字体的使用而不需要将个性化的字体最终输出为图形,在不增加后端压力的同时,大大提升了用户体验,非常赞。

  从图形使用上,平面设计比网页设计丰富,表现方式也多样化,特别是对于产品类的网页设计,模块化的设计思路更为明显,在视觉表现上也是如此,平面对于图形的表现是不需要考虑到后期的实现的,在一点上是有目共睹的。在来说一下咱们设计时使用的尺寸单位问题,平面设计在使用尺寸标注时都用的是物理尺寸的概念,比如英寸,厘米,毫米等,而网页使用的是像素。

  呈现方式
  平面设计 网页设计
展现形式 为纯静态 拥有诸多动态元素,在视觉感受上较为活泼,能引导用户的操作行为,增加互动性
视觉焦点 完整性较强 用户感受相对直观 受制于显示屏,会尽可能把重要信息展示在第一屏以内,完整必性将对平面设计会弱一些
后期实现 依赖印刷工艺,以及不同的材质媒介 涉及前台程序开发,服务器应用,网络信号等第三方资源的支持
  信息载体
  平面设计 网页设计
材质媒 纸质、布料等(会因材质不同,呈现出特别的效果),真实感强。 显示屏
信息量 完整性较强 因电脑等终端媒介的特殊性,依赖于html,信息量在同页面中可以大到无限。
更新反馈 依赖印刷工艺,以及不同的材质媒介 更新将对简单,即使有错误信息也能够及时的更正发布,对用户的信息的采集比较便捷。
  浏览方式

  平面设计的属于渐进式的浏览方式,无法对整个浏览的过程进行多样化串联,网页设计拥有滚动条下拉、按钮链接跳转等多样化的浏览信息方式,在拥有同样一种信息架构的条件下,信息之间的串联性更为丰富,用户选择信息的自由度更大,但平面设计也自然有其优势所在,比如平时我在设计照片书这类产品的时候,就很明显的发现,这一类的产品在电脑显示器上进行翻阅,不如印刷成为一个真实的书本来翻阅感受要更好一些,并且更具有收藏及纪念意义。

  信息传播

  平面设计属于比较传统的信息媒介设计,一般会通过张贴、销售、邮寄派送等形式进行传播,这样传播的方式范围小且成本较高,相对而言在这方面网页设计的信息传播能力却非常的强,但依赖于第三方媒介的支持,平面设计却拥有更为广泛的受众人群,不同的年龄层对于纸张或书本的信息接受能力总是强于网络媒体的,毕竟网络信息获取的将会存在一个学习成本,在今后网络信息的不断普及以及终端媒介用户体验的不断提升,在受众人群方面在我看来差距会越来越小。

  这两种设计形式拥有着不同的用户体验,我们应该根据不同设计内容,选择正确的设计形式提升用户体验,以上这些只是个人对平面与网页设计的一些粗浅认识,也作为抛砖引玉希望大家能分享出自己对于设计的想法,引用一段平面设计大师陈幼坚的一段话“做创意最重要就是定位清晰,如果定位清楚目标明确,很多创意就会自然创造出来。”

Tag:平面设计 网页设计 设计
阅读全文 »
  企业网站如何提高用户体验
yangivy | 时间:2012年05月08日
用户体验
 

    什么是用户体验?顾名思义,简明的说就是用户对网站需求和网站的粘度,如何提高用户体验,是网站的头等大事,搜索引擎优化,讲究对网站功能、网站结构、网页布局、网站内容综合性的设计。而用户体验讲究从网站印象、网站功能、网站实用性、网站内容等综合因素来改善网站环境,提高用户体验,合理的推广与提高网站用户体验,是提高网站转换率(把流量转化为有效客户的比率)的重要因素。

    一、网站功能

    1、网站程序:支持图文动画混合编排,能能够上传图片、动画、电影、附件,发布资讯可以方便管理,修改,删除等,后台能活方面,能在前台显现整洁标准的资讯内容,全站能生成静态格式。

    2、网站交互:能与网站的信息资讯互动起来,方便访客反馈意见,有论坛、博客等,能让网站成访客信息思想交互的平台。

    3、网站统计:全站采用统一的网站统计,能提供时段分析、关键词分析、在线分析、浏览分析等,方面网站管理第一时间获取用户对网站的需求,增添最新、最实用的信息。

    二、网站结构

    1、网站文件名以英文或汉语拼音命名,便于记忆,便于推广。

    2、明确实用的网站导航,三次鼠标点击以内能让访客找到底想找的信息。

    3、首页框架、分类框架、页面模型分析分确,排列整齐,增加网站地图功能。

    三、网页布局

    1、文字处理:文字的字号、字体、行距,要根据网站不同的分辨率、布局、行业,合理的调整。

    2、图像编排:图像能更加体验网站的美观,它能直观、生动,地把那些文字无法表达的信息表达出来,易于浏览者理解和接受,把握好图像的处理,能增加网站的粘度,使访客流连忘返,更喜欢您的网站。

    3、网站版型:是在文字与图像搭配设计下,营造出不同的浏览效果与设计风格, 这方面要注意要,网站的主标题、网站的菜单、网站的内容搭配等。

    四、网站内容

    1、网站内容,不是抄袭来、不是转载的、不是垃圾内容,是高质量的、原创的。原创的内容更能提高网站的价值度、专业度,更能提高流量,提高网站转换率,大量的原创内容是建立网站信誉与权威关键,更能提高网站信任度,用户体验,帮助网站品牌的宣传推广。

阅读全文 »
  交互设计是一种思维过程
sunny | 时间:2012年05月04日
网页设计
 

  交互设计师是一个对综合能力要求很多的职业,无法“说一不二”。工具固然很重要,现在很多大企业的设计部门都在制定设计标准,规范性的软件工具掌握越来越受到关注。 不过,我以为然设计师要少些“匠气”,多思考“为什么”,“怎么做”,也就是从“术”逐步转化为“道”的层面。这么说起来交互设计可以归结为思维过程。

  思维方式一:从“平面”到“舞台”的设计
  我们设计时常把内容,想像成一个二维方形界面。一位交互设计前辈曾说设计思维的局限有时在于太拘泥于面前的那个“方块”,就难发挥相象力,如果你把面前的二维方形界面转化一个思维,将它翻转一下(转成45度角)看成一个舞台,你需要的元素都是你的演员,什么时候转场,什么时候出现那位角色,如何出现…很多事情都会豁然开朗。
  其实这种思维方法,就把平时面对的二维交互界面更佳贴合用户接触的三维、四维空间,达到模拟现实,增加用户操作的感知和理解。

  思维方式二:交互设计是关于“时间”的
  思维方式还帮助我们思考“何时出现”,这就是交互设计中非常重要的“时间线”的设计。设计都是有时间的,用户是从开始到最后有时间流逝活动的对象,随着时间的推移,交互介质和交互场景都会发生转化。 即使同一个元素,不同时间状态上展示的方式都应该有所不同。
 
  思维方式三:“术”的过程
  “术”,不仅包含交互设计的初期需要掌握快速原型的方法(纸上快速表现也不错哦),更多的是对常见交互模式的熟知。
  如果你认可:设计是用来解决问题的。交互设计往往为问题提供解决方案。那么,熟知已有的ui模式对于你用来解决常见问题非常有用。

  思维方式四:创新
  所谓设计的创新就是把本应该大的东西做小,本应该小的东西放大。现在想来,其实可以扩散开来,把一些常规的组合打散,把一些元素重新组合。摆脱常规就是一种创新。把不同元素重新组合一起就是一种创新。
  互交设计可以理解为不同思维的集合体,用静、动态界面表达出客户的需求,达到与用户间互动,实现最终目的。
 

Tag:交互设计 思维 网页设计
阅读全文 »
  PHP缓存技术
zyjsms | 时间:2012年05月04日
技术创新
 

普遍缓存技术

数据缓存:这里所说的数据缓存是指数据库查询缓存,每次访问页面的时候,都会先检测相应的缓存数据是否存在,如果不存在,就连接数据库,得到数据,并把查询结果序列化后保存到文件中,以后同样的查询结果就直接从缓存表或文件中获得。

用的最广的例子看Discuz的搜索功能,把结果ID缓存到一个表中,下次搜索相同关键字时先搜索缓存表。

举个常用的方法,多表关联的时候,把附表中的内容生成数组保存到主表的一个字段中,需要的时候数组分解一下,这样的好处是只读一个表,坏处就是两个数据同步会多不少步骤,数据库永远是瓶颈,用硬盘换速度,是这个的关键点。

页面缓存:

每次访问页面的时候,都会先检测相应的缓存页面文件是否存在,如果不存在,就连接数据库,得到数据,显示页面并同时生成缓存页面文件,这样下次访问的时候页面文件就发挥作用了。(模板引擎和网上常见的一些缓存类通常有此功能)

时间触发缓存:

检查文件是否存在并且时间戳小于设置的过期时间,如果文件修改的时间戳比当前时间戳减去过期时间戳大,那么就用缓存,否则更新缓存。

内容触发缓存:

当插入数据或更新数据时,强制更新缓存。

静态缓存:

这里所说的静态缓存是指静态化,直接生成HTML或XML等文本文件,有更新的时候重生成一次,适合于不太变化的页面,这就不说了。

以上内容是代码级的解决方案,我直接CP别的框架,也懒得改,内容都差不多,很容易就做到,而且会几种方式一起用,但下面的内容是服务器端的缓存方案,非代码级的,要有多方的合作才能做到

内存缓存:

Memcached是高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。

这里说下Memcached的例子:

代码

<?php
$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Could not connect");
$version = $memcache->getVersion();
echo "Server's version: ".$version."\n";
$tmp_object = new stdClass;
$tmp_object->str_attr = 'test';
$tmp_object->int_attr = 123;
$memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at the server");
echo "Store data in the cache (data will expire in 10 seconds)\n";
$get_result = $memcache->get('key');
echo "Data from the cache:\n";
var_dump($get_result);
?>

读库的例子:

代码

<?php
$sql = 'SELECT * FROM users';
$key = md5($sql);   //memcached 对象标识符
if ( !($datas = $mc->get($key)) ) {
    //  在 memcached 中未获取到缓存数据,则使用数据库查询获取记录集。
    echo "n".str_pad('Read datas from MySQL.', 60, '_')."n";
    $conn = mysql_connect('localhost', 'test', 'test');
    mysql_select_db('test');
    $result = mysql_query($sql);
    while ($row = mysql_fetch_object($result))
        $datas[] = $row;
    //  将数据库中获取到的结果集数据保存到 memcached 中,以供下次访问时使用。
    $mc->add($key, $datas);
} else {
    echo "n".str_pad('Read datas from memcached.', 60, '_')."n";
}
var_dump($datas);
?>

php的缓冲器:

有eaccelerator, apc, phpa,xcache,这个这个就不说了吧,搜索一堆一堆的,自己看啦,知道有这玩意就OK

MYSQL缓存:

这也算非代码级的,经典的数据库就是用的这种方式,看下面的运行时间,0.09xxx之类的
我贴段根据蓝色修改后部分my.ini,2G的MYISAM表可以在0.05S左右,据说他前后改了有快一年

代码拷贝框

代码

[client]
……
default-character-set=gbk
default-storage-engine=MYISAM
max_connections=600
max_connect_errors=500
back_log=200
interactive_timeout=7200
query_cache_size=64M
……
table_cache=512
……
myisam_max_sort_file_size=100G
myisam_max_extra_sort_file_size=100G
myisam_sort_buffer_size=128M
key_buffer_size=1024M
read_buffer_size=512M
……
thread_concurrency=8

基于反向代理的Web缓存:

如Nginx,SQUID,mod_proxy(apache2以上又分为mod_proxy和mod_cache)
NGINX的例子

代码

<nginx.conf>
#user  nobody;
worker_processes  4;
error_log  logs/error.log crit;
pid        logs/nginx.pid;
worker_rlimit_nofile 10240;
events {
    use epoll;
    worker_connections  51200;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile    on;
    keepalive_timeout 65;
    tcp_nodelay on;
    # server pool
    upstream bspfrontsvr {
            server 10.10.10.224:80   weight=1;
            server 10.10.10.221:80   weight=1;
    }
  
    upstream bspimgsvr {
            server 10.10.10.201:80   weight=1;
    }
  
    upstream bspstylesvr {
            server 10.10.10.202:80   weight=1;
    }
  
    upstream bsphelpsvr {
            server 10.10.10.204:80   weight=1;
    }
  
    upstream bspwsisvr {
            server 10.10.10.203:80   weight=1;
    }
  
    upstream bspadminsvr {
            server 10.10.10.222:80   weight=1;
    }
  
    upstream bspbuyersvr {
            server 10.10.10.223:80   weight=1;
    }
  
    upstream bspsellersvr {
            server 10.10.10.225:80   weight=1;
    }
    upstream  bsploginsvr  {
            server 10.10.10.220:443  weight=1;
    }
    upstream  bspregistersvr  {
            server 10.10.10.220:80  weight=1;
    }
    log_format  test_com  '$remote_addr - $remote_user [$time_local] "$request" '
                             '$status $body_bytes_sent "$http_referer" "$http_user_agent" ';
    #--------------------------------------------------------------------
    #img.test.com
    server {
        listen       10.10.10.230:80;
        server_name  img.test.com;
        location / {
                        proxy_pass      http://bspimgsvr;
                        include         proxy_setting.conf;
        }
        access_log  logs/img.log  test_com;
    }
  
    #style.test.com
    server {
        listen       10.10.10.230:80;
        server_name  style.test.com;
        location / {
                        proxy_pass      http://bspstylesvr;
                        include         proxy_setting.conf;
        }
        access_log  logs/style.log  test_com;
    }
  
  
    #help.test.com
    server {
        listen       10.10.10.230:80;
        server_name  help.test.com;
        location / {
                        proxy_pass      http://bsphelpsvr;
                        include         proxy_setting.conf;
        }
        access_log  logs/help.log  test_com;
    }
  
  
    #admin.test.com
    server {
        listen       10.10.10.230:80;
        server_name  admin.test.com;
        location / {
                        proxy_pass      http://bspadminsvr;
                        include         proxy_setting.conf;
        }
        access_log  logs/admin.log  test_com;
    }
  
    #buyer.test.com
    server {
        listen       10.10.10.230:80;
        server_name  buyer.test.com;
        location / {
                        proxy_pass      http://bspbuyersvr;
                        include         proxy_setting.conf;
        }
        access_log  logs/buyer.log  test_com;
    }
  
    #seller.test.com
    server {
        listen       10.10.10.230:80;
        server_name  seller.test.com;
        location / {
                        proxy_pass      http://bspsellersvr;
                        include         proxy_setting.conf;
        }
        access_log  logs/seller.log  test_com;
    }
    #wsi.test.com
    server {
        listen       10.10.10.230:80;
        server_name  wsi.test.com;
        location / {
                        proxy_pass      http://bspwsisvr;
                        include         proxy_setting.conf;
        }
        access_log  logs/wsi.log  test_com;
    }
    #www.test.com
    server {
        listen       10.10.10.230:80;
        server_name  www.test.com   *.test.com;
        location ~ ^/NginxStatus/ {
            stub_status on;
            access_log off;
        }
        location / {
                        proxy_pass      http://bspfrontsvr;
                        include         proxy_setting.conf;
        }
        access_log  logs/www.log  test_com;
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    } 
    #login.test.com
    server {
        listen       10.10.10.230:443;
        server_name  login.test.com;
        ssl                  on;
        ssl_certificate      cert.pem;
        ssl_certificate_key  cert.key;
        ssl_session_timeout  5m;
        ssl_protocols  SSLv2 SSLv3 TLSv1;
        ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
        ssl_prefer_server_ciphers   on;
        location / {
                        proxy_pass        https://bsploginsvr;
                        include         proxy_setting.conf;
        }
        access_log  logs/login.log  test_com;
    }
    #login.test.com for register
    server {
        listen       10.10.10.230:80;
        server_name  login.test.com;
        location / {
                        proxy_pass        http://bspregistersvr;
                        include         proxy_setting.conf;
        }  
        access_log  logs/register.log  test_com;
    } 
  
}
<conf/proxy_setting.conf>
                        proxy_redirect          off;
                        proxy_set_header        Host $host;
                        proxy_set_header        X-Real-IP $remote_addr;
                        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                        client_max_body_size    10m;
                        client_body_buffer_size 128k;
                        proxy_connect_timeout   90;
                        proxy_send_timeout      90;
                        proxy_read_timeout      90;
                        proxy_buffer_size       4k;
                        proxy_buffers           4 32k;
                        proxy_busy_buffers_size 64k;
                        proxy_temp_file_write_size 64k;

mod_proxy的例子:

代码

<VirtualHost *>
ServerName www.zxsv.com
ServerAdmin admin@zxsv.com
# reverse proxy setting
ProxyPass / http://www.zxsv.com:8080/
ProxyPassReverse / http://www.zxsv.com:8080/
# cache dir root
CacheRoot "/var/www/proxy"
# max cache storage
CacheSize 50000000
# hour: every 4 hour
CacheGcInterval 4
# max page expire time: hour
CacheMaxExpire 240
# Expire time = (now - last_modified) * CacheLastModifiedFactor
CacheLastModifiedFactor 0.1
# defalt expire tag: hour
CacheDefaultExpire 1
# force complete after precent of content retrived: 60-90%
CacheForceCompletion 80
CustomLog /usr/local/apache/logs/dev_access_log combined
</VirtualHost>

而SQUID的例子 ,这方面网上有写的太多。

Tag:缓存
阅读全文 »
  经典SQL语句大全
zyjsms | 时间:2012年05月04日
技术创新
 

一、基础

1、说明:创建数据库
CREATE DATABASE database-name
2、说明:删除数据库
drop database dbname
3、说明:备份sql server
--- 创建 备份数据的 device
USE master
EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'
--- 开始 备份
BACKUP DATABASE pubs TO testBack
4、说明:创建新表
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)

根据已有的表创建新表:
A:create table tab_new like tab_old (使用旧表创建新表)
B:create table tab_new as select col1,col2… from tab_old definition only
5、说明:删除新表
drop table tabname
6、说明:增加一个列
Alter table tabname add column col type
注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
7、说明:添加主键: Alter table tabname add primary key(col)
说明:删除主键: Alter table tabname drop primary key(col)
8、说明:创建索引:create [unique] index idxname on tabname(col….)
删除索引:drop index idxname
注:索引是不可更改的,想更改必须删除重新建。
9、说明:创建视图:create view viewname as select statement
删除视图:drop view viewname
10、说明:几个简单的基本的sql语句
选择:select * from table1 where 范围
插入:insert into table1(field1,field2) values(value1,value2)
删除:delete from table1 where 范围
更新:update table1 set field1=value1 where 范围
查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料!
排序:select * from table1 order by field1,field2 [desc]
总数:select count as totalcount from table1
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最小:select min(field1) as minvalue from table1
11、说明:几个高级查询运算词
A: UNION 运算符
UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。
B: EXCEPT 运算符
EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。
C: INTERSECT 运算符
INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。
注:使用运算词的几个查询结果行必须是一致的。
12、说明:使用外连接
A、left (outer) join:
左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
B:right (outer) join:
右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。
C:full/cross (outer) join:
全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。
12、分组:Group by:
   一张表,一旦分组 完成后,查询后只能得到组相关的信息。
    组相关的信息:(统计信息) count,sum,max,min,avg  分组的标准)
    在SQLServer中分组时:不能以text,ntext,image类型的字段作为分组依据
   在selecte统计函数中的字段,不能和普通的字段放在一起;

13、对数据库进行操作:
   分离数据库: sp_detach_db; 附加数据库:sp_attach_db 后接表明,附加需要完整的路径名
14.如何修改数据库的名称:
sp_renamedb 'old_name', 'new_name'

 

二、提升

1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用)
法一:select * into b from a where 1<>1(仅用于SQlServer)
法二:select top 0 * into b from a
2、说明:拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用)
insert into b(a, b, c) select d,e,f from b;

3、说明:跨数据库之间表的拷贝(具体数据使用绝对路径) (Access可用)
insert into b(a, b, c) select d,e,f from b in ‘具体数据库’ where 条件
例子:..from b in '"&Server.MapPath(".")&"\data.mdb" &"' where..

4、说明:子查询(表名1:a 表名2:b)
select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where a IN (1,2,3)

5、说明:显示文章、提交人和最后回复时间
select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b

6、说明:外连接查询(表名1:a 表名2:b)
select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c

7、说明:在线视图查询(表名1:a )
select * from (SELECT a,b,c FROM a) T where t.a > 1;

8、说明:between的用法,between限制查询数据范围时包括了边界值,not between不包括
select * from table1 where time between time1 and time2
select a,b,c, from table1 where a not between 数值1 and 数值2

9、说明:in 的使用方法
select * from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’)

10、说明:两张关联表,删除主表中已经在副表中没有的信息
delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )

11、说明:四表联查问题:
select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....

12、说明:日程安排提前五分钟提醒
SQL: select * from 日程安排 where datediff('minute',f开始时间,getdate())>5

13、说明:一条sql 语句搞定数据库分页
select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段
具体实现:
关于数据库分页:

  declare @start int,@end int

  @sql  nvarchar(600)

  set @sql=’select top’+str(@end-@start+1)+’+from T where rid not in(select top’+str(@str-1)+’Rid from T where Rid>-1)’

  exec sp_executesql @sql


注意:在top后不能直接跟一个变量,所以在实际应用中只有这样的进行特殊的处理。Rid为一个标识列,如果top后还有具体的字段,这样做是非常有好处的。因为这样可以避免 top的字段如果是逻辑索引的,查询的结果后实际表中的不一致(逻辑索引中的数据有可能和数据表中的不一致,而查询时如果处在索引则首先查询索引)

14、说明:前10条记录
select top 10 * form table1 where 范围

15、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.)
select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)

16、说明:包括所有在 TableA 中但不在 TableB和TableC 中的行并消除所有重复行而派生出一个结果表
(select a from tableA ) except (select a from tableB) except (select a from tableC)

17、说明:随机取出10条数据
select top 10 * from tablename order by newid()

18、说明:随机选择记录
select newid()

19、说明:删除重复记录
1),delete from tablename where id not in (select max(id) from tablename group by col1,col2,...)
2),select distinct * into temp from tablename
  delete from tablename
  insert into tablename select * from temp
评价: 这种操作牵连大量的数据的移动,这种做法不适合大容量但数据操作
3),例如:在一个外部表中导入数据,由于某些原因第一次只导入了一部分,但很难判断具体位置,这样只有在下一次全部导入,这样也就产生好多重复的字段,怎样删除重复字段

alter table tablename
--添加一个自增列
add  column_b int identity(1,1)
 delete from tablename where column_b not in(
select max(column_b)  from tablename group by column1,column2,...)
alter table tablename drop column column_b

20、说明:列出数据库里所有的表名
select name from sysobjects where type='U' // U代表用户

21、说明:列出表里的所有的列名
select name from syscolumns where id=object_id('TableName')

22、说明:列示type、vender、pcs字段,以type字段排列,case可以方便地实现多重选择,类似select 中的case。
select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM tablename group by type
显示结果:
type vender pcs
电脑 A 1
电脑 A 1
光盘 B 2
光盘 A 2
手机 B 3
手机 C 3

23、说明:初始化表table1

TRUNCATE TABLE table1

24、说明:选择从10到15的记录
select top 5 * from (select top 15 * from table order by id asc) table_别名 order by id desc

三、技巧

1、1=1,1=2的使用,在SQL语句组合时用的较多

“where 1=1” 是表示选择全部    “where 1=2”全部不选,
如:
if @strWhere !=''
begin
set @strSQL = 'select count(*) as Total from [' + @tblName + '] where ' + @strWhere
end
else
begin
set @strSQL = 'select count(*) as Total from [' + @tblName + ']'
end

我们可以直接写成

错误!未找到目录项。
set @strSQL = 'select count(*) as Total from [' + @tblName + '] where 1=1 安定 '+ @strWhere 2、收缩数据库
--重建索引
DBCC REINDEX
DBCC INDEXDEFRAG
--收缩数据和日志
DBCC SHRINKDB
DBCC SHRINKFILE

3、压缩数据库
dbcc shrinkdatabase(dbname)

4、转移数据库给新用户以已存在用户权限
exec sp_change_users_login 'update_one','newname','oldname'
go

5、检查备份集
RESTORE VERIFYONLY from disk='E:\dvbbs.bak'

6、修复数据库
ALTER DATABASE [dvbbs] SET SINGLE_USER
GO
DBCC CHECKDB('dvbbs',repair_allow_data_loss) WITH TABLOCK
GO
ALTER DATABASE [dvbbs] SET MULTI_USER
GO

7、日志清除
SET NOCOUNT ON
DECLARE @LogicalFileName sysname,
 @MaxMinutes INT,
 @NewSize INT


USE tablename -- 要操作的数据库名
SELECT  @LogicalFileName = 'tablename_log', -- 日志文件名
@MaxMinutes = 10, -- Limit on time allowed to wrap log.
 @NewSize = 1  -- 你想设定的日志文件的大小(M)

Setup / initialize
DECLARE @OriginalSize int
SELECT @OriginalSize = size
 FROM sysfiles
 WHERE name = @LogicalFileName
SELECT 'Original Size of ' + db_name() + ' LOG is ' +
 CONVERT(VARCHAR(30),@OriginalSize) + ' 8K pages or ' +
 CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + 'MB'
 FROM sysfiles
 WHERE name = @LogicalFileName
CREATE TABLE DummyTrans
 (DummyColumn char (8000) not null)


DECLARE @Counter    INT,
 @StartTime DATETIME,
 @TruncLog   VARCHAR(255)
SELECT @StartTime = GETDATE(),
 @TruncLog = 'BACKUP LOG ' + db_name() + ' WITH TRUNCATE_ONLY'

DBCC SHRINKFILE (@LogicalFileName, @NewSize)
EXEC (@TruncLog)
-- Wrap the log if necessary.
WHILE @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) -- time has not expired
 AND @OriginalSize = (SELECT size FROM sysfiles WHERE name = @LogicalFileName) 
 AND (@OriginalSize * 8 /1024) > @NewSize 
 BEGIN -- Outer loop.
SELECT @Counter = 0
 WHILE   ((@Counter < @OriginalSize / 16) AND (@Counter < 50000))
 BEGIN -- update
 INSERT DummyTrans VALUES ('Fill Log') DELETE DummyTrans
 SELECT @Counter = @Counter + 1
 END
 EXEC (@TruncLog) 
 END
SELECT 'Final Size of ' + db_name() + ' LOG is ' +
 CONVERT(VARCHAR(30),size) + ' 8K pages or ' +
 CONVERT(VARCHAR(30),(size*8/1024)) + 'MB'
 FROM sysfiles
 WHERE name = @LogicalFileName
DROP TABLE DummyTrans
SET NOCOUNT OFF

8、说明:更改某个表
exec sp_changeobjectowner 'tablename','dbo'

9、存储更改全部表

CREATE PROCEDURE dbo.User_ChangeObjectOwnerBatch
@OldOwner as NVARCHAR(128),
@NewOwner as NVARCHAR(128)
AS

DECLARE @Name    as NVARCHAR(128)
DECLARE @Owner   as NVARCHAR(128)
DECLARE @OwnerName   as NVARCHAR(128)

DECLARE curObject CURSOR FOR
select 'Name'    = name,
   'Owner'    = user_name(uid)
from sysobjects
where user_name(uid)=@OldOwner
order by name

OPEN   curObject
FETCH NEXT FROM curObject INTO @Name, @Owner
WHILE(@@FETCH_STATUS=0)
BEGIN    
if @Owner=@OldOwner
begin
   set @OwnerName = @OldOwner + '.' + rtrim(@Name)
   exec sp_changeobjectowner @OwnerName, @NewOwner
end
-- select @name,@NewOwner,@OldOwner

FETCH NEXT FROM curObject INTO @Name, @Owner
END

close curObject
deallocate curObject
GO


10、SQL SERVER中直接循环写入数据
declare @i int
set @i=1
while @i<30
begin
    insert into test (userid) values(@i)
    set @i=@i+1
end
案例:
有如下表,要求就裱中所有

Tag:SQL
阅读全文 »
1 2 » 
 
内容搜索
分类目录
媒体专区 (3)
新闻公告 (5)
技术创新 (4)
用户体验 (15)
网页设计 (19)
团队分享 (20)
悦读周末 (5)
短信中国LOGO (8)
时间索引
2010年07月 (11)
2010年08月 (8)
2010年09月 (11)
2010年11月 (1)
2010年12月 (1)
2011年01月 (3)
2011年02月 (1)
2011年03月 (1)
2011年04月 (1)
2011年05月 (3)
2011年06月 (2)
2011年07月 (1)
2011年10月 (1)
2011年12月 (1)
2012年04月 (8)
2012年05月 (12)
2012年06月 (6)
2012年07月 (6)
2012年08月 (1)
最新发布文章
网页设计技巧解析
电子商务网站设计的10个...
利用统计分析,倾听你...
商标图案创意的原则
提高设计水平的九大秘...
韩国游戏网站设计
最新评论文章
2011年短信中国“给力”...
短信中国,浓浓圣诞节
热门标签
网页设计  技巧分析 网页布局 电子商务 技巧 团队 极速电网 挑战 游戏 通知 好心情 秘决 商标设计 创意 世博 创意大赛 短信 上海 整体作战 明星效应 世界杯 马拉松 短信生活 端午 节日短信 粽子 亲人 营销 市场 用户 
Copyright© 2010 SMS短信应用平台版权所有
http://www.sms.com.cn/Blog SMS短信应用平台团队博客