不再犹豫
分享是一种美德

养成JavaScript代码编写的好习惯

CN、古哥阅读(1141)

良好的习惯总是让人受益匪浅,在编写代码的时候,良好的习惯会使得开发更加地高效,减少出错的几率,甚至提高代码的运行效率,下面是一些在 JavaScript 代码编写中应该注意的几个问题,它们都非常容易遇到,却又可能非常容易地被忽略。

1. 减少不必要的全部变量

关于全局变量,这是 JavaScript 非常糟糕的一个特性,它非常地容易被创建,特别是被不小心地创建。在程序变得复杂,或者同时运行多个程序的时候,它可能带来难以调试的错误。在定义变量前加上 var,是首先应该注意并警惕的。

function fn(){
    var a = 1;   //局部变量
    b = 1;   //全局变量
}
2. 正确书写 script 标签

如果你的 script 标签中还带有 language 属性,说明你真的奥特了,赶紧去掉吧,这个属性早已经被 W3C 开除了,在 XHTML 1.0严格型中(Strict),甚至已经不再支持这个属性。需要提醒一点的是,在 Html5 中,script 标签也不再需要 type 属性,对于 Html5 来说,JavaScript 是唯一被支持的脚本语言。

<!-- XHTML 1.0 -->
<script type="javascript"></script>

<!-- HTML 5 -->
<script></script>
3. 去掉JSON最后一组键值对后面的逗号

如果你的代码像下面这样,在 IE 中会报错,并且这个错误很难被发现,IE 的报错也不会提供任何有价值的信息,唯一能做的就是在编写的时候格外小心,如果你的 JSON 是后端返回的,那么记得在下周一上班时把这个信息传达给后端程序员。

var post = {
    title : "养成JavaScript代码编写的好习惯",
    postDate : "2010-07-16",
    author : "坚强的小展",    //注意,这个逗号会让程序在 IE 的所有版本下报错。
}
4. 避免依赖 typeof 验证数据类型

typeof 是用来验证数据类型的方法,不幸的是,当需要验证的数据类型为数组、函数等时,这个方法并不能返回我们想象中的结果。事实上这并不是 typeof 的错,在 JavaScript 中,数组和函数的本质实际上也是对象,但这的确给我们带来了麻烦。

/** 依赖 typeof 的验证结果 **/
var a = [];
typeof a;   // "object"
var b = function(){};
typeof b;   // "object";
typeof null;    // "object"
/** 正确的验证方法 **/
var a = [];
a.constructor === Array;   // true
var b = function(){};
b.constructor === Function;   // true
/** 验证某个变量是否为null **/
typeof c === "undefined";   //true
5. 使用全等运算符代替相当相当运算符

作为弱类型语言的 JavaScript 似乎让我们习惯了不注重变量的数据类型,这样的偷懒看上去让我们变得轻松一些了,但这在运算的时候可能会带来更大的麻烦。推荐的做法是在开发中明确地了解 变量当前的数据类型,并且在做相等判断的时候,使用 === 运算符来代替 == 运算符,这意味着在进行比较前,必须确保参与比较的两个变量属于同一数据类型。这样做的好处可以避免 JavaScript 在处理不同数据类型的比较时自动转换数据类型可能带来的麻烦,同时也可以提高程序的运行效率。

0 == "";   // true
0 === "";   // false
1 == "1";   // true
1 === "1";   // false
6. 避免使用 with 和 eval

这一点被人提得比较多,这里就不再多说了,避免使用它们,以增加程序的可读性、安全性,减小出错的概率,提高运行效率。

web页面适配css适配

wangtong阅读(1244)

最近开发新的网站,要求是需要有两套适配样式,但是之前没有弄过,所以百思不得解,所以一系列的谷歌百度啊,终于被我找到了类似的解决办法,接下来我就简单的介绍一下:

本方法是通过css适配:

CSS判断不同分辨率浏览器(显示屏幕)显示不同宽度布局CSS3技术支持IE6到IE8。将用到css3 @media样式进行判断,但IE9以下版本不支持CSS3技术,这里DIVCSS5给大家介绍通过JS实现低版本的浏览器也支持CSS3实现实用布局。

@media screen and (判断属性){ CSS样式选择器 }

根据这个基本上解决了缩小窗口拖动。

欢迎大家关注公众号:

jQuery 效果:[1]tab切换

wangtong阅读(1321)

今天为大家分享一个jQuery做的tab标签切换。

新版网站正在开发,代码及方法什么的都需要重新编写,所以导航及子页面的部分tab切换采用了统一的方法,自己写了一个简单的方法,效果如下:

第一个是导航切换:

选择哪一项加一个底部border及图片加颜色,我采用的是换图片,两张图片。

第二个是tab切换:

 

好了,基本上就是这样,等之后回吧代码整理一下打包上传。希望大家多多支持!

前端开发必看的书籍

mrnaas阅读(1387)

第一本:《JavaScript 语言精粹(修订版)》

我毕业后工作头一两年读的第一本 JavaScript 书就是《JavaScript 语言精粹》,当时完整地读了两篇,后来还时不时地会翻里面的重点看。对于前端刚工作的人和前端刚入门的人来说,需要反复阅读和理解。这本书可以深入理解 JavaScript 的特性,写出高质量的代码,适合有 JavaScript 语言基础的人学,不适合于作为零基础入门的教材。

第二本:《数据结构与算法 JavaScript 描述》

如果你专注前端开发,又想学习数据结构和算法,那么这本书是非常不错的选择,至少在中文书籍中,我还没有见到过一本比这本更好的用 JavaScript 描述的数据结构与算法书。

其实这本书在实际工作中没有太大的实战性,就像很多人说的,实际工作中几乎用不到算法。但是,算法绝对是值得每一个程序员去学习的。学习算法是为了提高逻辑思维能力和解决问题的能力,这是每个公司都第一看重的能力。

如果你发现你学的技术已经有了到了瓶颈的感觉,那么说明你需要学习算法了。就算为了给你工作加分,也应该学习算法。如果面试时让你写一个冒泡排序,你不会,那岂不是很尴尬。

当然,这书讲的都是数据结构和算法基础知识,比如字典、集合、二叉树、排序算法等。但如果你已经有这基础,我觉得对于前端开发这份工作已经够了,如果你想学习机器学习或继续锻炼自己的逻辑思维能力,我推荐关注我的系列教程《算法》,也是基于 JavaScript 语言的。

第三本:《CSS 揭秘》

这本书是一书很好的 CSS 实战性教程。每一节都是先给出一个“难题”,再给出一个或多个“方案”,并会作详细解释。掌握 CSS 的最好学习方法就是多练,这本书是中文 CSS 书籍中我个人最喜欢的一本。为什么它写的好。举个书中的例子:

书中第二章第 1 节讲的是半透明边框,这个场景是很常见的,看起来很简单,就是设置 boder 属性而已,但默认情况下,背景会延伸到边框的区域下层,也就是说你即使设置了半透明,默认情况这个半透明边框是看不到的。具体解决方案我就不讲了,大家可以去看这本书。

第四本:《JavaScript 高级程序设计, 第 3 版》

这本书和《JavaScript 权威指南, 第 6 版》相比,我强烈推荐《JavaScript 高级程序设计》。如果你想正儿八经地系统性地学习一遍 JavaScript,那么这本书应该是最好的选择。而且我建议看完后可以画画重点,将来既可以作为参考用,对于面试也是能派上用场的。当然,如果你已经有一定基础了,不必每一章每一节都看,可以筛选着看。

这本书算是基础类的了,如果你想对 JavaScript 有更深入更细的理解和掌握,特别是理解那些比较晦涩难懂的知识点,比如this原型委托等,那就看看《你不知道的 JavaScript》这套书,它分为上、中、下三卷。

第五本:《ECMAScript 6 入门》

这本书是阮一峰老师写的,而且是开源的,在线阅读地址是:http://es6.ruanyifeng.com,讲的是 ES6 标准下的新语法,我个人觉得讲得很好,言简意赅。如果你用过 Vue、React 等前端框架,你就知道 ES6 标准的 JavaScript 语法无处不在。所以如果你还没学,或者学得不够全,那么我建议你看看这个教程。

第六本:《JavaScript 函数式编程》

 

 

函数式编程是一种编程范式,它的优点是简洁易读,模块化,低耦合,适合并发编程等,很多前端大咖都推过函数式编程。这本对书函数式编程的相关概念和编程思想都讲的比较好也容易理解,从中你可以学习到纯函数、高阶函数、柯里化(Currying) 等知识。如果你用过 React,这一类知识肯定用得比较多,学好函数式编程也有助于你更好地理解 React 的设计思想。

不过,有一点不好的就是,比如说柯里化,如果直接说 Currying 反而更容易理解,不是说这本书翻译得不好,很多术语用中文表达总觉得不是很恰当,我觉得如果你能阅读英文版的最好读英文版的。

作者:王亮

出处:http://cnblogs.com/willick

联系:liam.wang@live.com本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。如有问题或建议,请多多赐教,非常感谢。

最热门的前端框架

mrnaas阅读(1419)

目前最热门的前端框架

1、bootstrap
  目前最流行的 HTML, CSS 和 JavaScript 框架,用于开发响应式,移动端先行的 web 项目

gethub:https://github.com/twbs/bootstrap

官网:http://getbootstrap.com/

2、vue
  一个用以创建用户接口的直观、快速、简洁的 MVVM 框架

gethub:https://github.com/vuejs/vue

官网:https://vuejs.org/

3、angular.js
  Google推出的MVVM框架,它会通过双向数据绑定自动从你的UI(视图)同步数据到javascript模型。

gethub:https://github.com/angular/angular.js

官网:https://angularjs.org/

4、react
  Facebook 推出的一款声明式的,高效的,灵活的用于创建用户界面的JavaScript 库

gethub:https://github.com/facebook/react

官网:https://reactjs.org/

5、webpack
 一个现代 JavaScript 应用程序的静态模块打包器

gethub:https://github.com/webpack/webpack

官网:https://webpack.js.org/

UI框架

1、react-native
  一个基于 React 的创建原生APP的框架,它使用与React相同的设计,允许您从声明性组件组成丰富的移动UI。

gethub:https://github.com/facebook/react-native

官网:http://facebook.github.io/react-native/

2、layer
 layui框架下的一个弹出层框架 pc和移动端都可使用 简洁方便

官网:http://layer.layui.com/

3、video.js
  Video.js – 开源的 HTMl5 和 Flash 视频播放器

gethub:https://github.com/videojs/video.js

官网:https://videojs.com/

css框架

1、animate.css
  跨浏览器的CSS3动画库,使用方便

gethub:https://github.com/daneden/animate.css

官网:https://daneden.github.io/animate.css/

2、Font-Awesome
 图标字体和 CSS 套件,Font Awesome 是一整套包含 585 个象形矢量图标的字体库,由 Dave Gandy 创建和维护,在Twitter上保持更新最新版本的发布

gethub:https://github.com/FortAwesome/Font-Awesome

官网:https://fontawesome.com/?from=io

3、Hover
  CSS3鼠标移到元素上面的动画效果,可运用在超链接、按钮、logo、SVG、图片等等。能够很方便地使用在你自己的元素上,支持 CSS、Sass、LESS

gethub:https://github.com/IanLunn/Hover

官网:https://ianlunn.github.io/Hover/

4、metro-ui-css
 用于构建Windows 8 Metro UI样式界面的CSS样式

gethub:https://github.com/olton/Metro-UI-CSS

官网:https://metroui.org.ua/examples.html

可视化视图框架

1、d3
  一个针对 HTML 和 SVG 的 JavaScript 可视化库

gethub:https://github.com/d3/d3

官网:https://d3js.org/

2、three.js
  JavaScript 3D 库,该项目旨在创建一个轻量的,易用的 3D 图形库 

gethub:https://github.com/mrdoob/three.js

官网:https://threejs.org/

3、echarts
 百度团队开发的一款商业级数据图表

gethub:https://github.com/apache/incubator-echarts

官网:http://echarts.baidu.com/

4、Chart.js
   使用 标签的简洁的HTML5图表

gethub:https://github.com/chartjs/Chart.js

官网:https://www.chartjs.org/
————————————————
原文链接:https://blog.csdn.net/lwpoor123/article/details/81671769

web前端框架推荐

mrnaas阅读(1819)

 目前web前端开发非常火爆,导致了前端的一系列框架,层出不穷,很多学员都会问道传智播客的老师,关于web前端开发那么多的框架,不知道从哪里下手,也不知道该如何使用,这里传智播客的老师收集了目前互联网最具有代表性web 前端开发工具和框架,希望对大家有所帮助。
  1.Bootstrap

  Bootstrap是最受欢迎的 HTML、CSS 和 JS 框架,用于开发响应式布局、移动设备优先的 WEB 项目。
  2.NEC : 更好的CSS样式解决方案
  NEC包括了规范、框架、代码库、插件等内容,致力于为前端开发人员提供高效率高质量的前端页面开发解决方案,提高多人协作效率,也为非专业人员提供快速制作网页的解决方案。

  3.NEJ-Nice Easy Javascript
  简洁,美观,真正的跨平台web前端开发框架

  4.Foundation
  迄今为止最好的响应式前端框架,更快、更轻、更多功能、更灵活、更强大!

  5.Amaze UI
  是一个轻量级的前端框架, 基于开源社区流行前端框架编写,中国首个开源 HTML5 跨屏前端框架
  6.jquery weui
  是专为微信公众账号开发而设计的一个简洁而强大的UI库,包含全部WeUI官方的CSS组件,并且额外提供了大量的拓展组件,丰富的组件库可以极大减少前端开发时间。
  7. Layui – 经典模块化前端框架
  8.jQuery插件库-收集最全最新最好的jQuery插件
  写的更少,做的更多
  9.FrozenUI – 专注于移动web的UI框架
  简单易用,轻量快捷,为移动端服务的前端框架
  10.SUI Mobile
  轻量,小巧且精美的UI库,方便迅速搭建手机H5应用
  以上是在长期工作中总结出来的移动WEB UI框架资源,大家可以根据自己的业务需求去选择合适的WEB UI框架。

Mako 模版

mrnaas阅读(1954)

Mako 模板是从文本流中进行解析的,流中可以包含任意内容: XML, HTML, email 文本,等等。模板中可以包含 Mako 特定的指令(directives),可用于表示变量或表达式替换,控制结构(如条件和循环),服务器端注释,整段的 Python 代码,以及各种用于提供附加功能的标签(tags)。所有这些将被编译为真实的 Python 代码。这意味着你可以在 Mako 模板中利用 Python 几乎所有的强大特性。使用例子:
<%inherit file="base.html"/>
<%
rows = [[v for v in range(0,10)] for row in range(0,10)]
%>
<table>
% for row in rows:
${makerow(row)}
% endfor
</table>

<%def name="makerow(row)">
<tr>
% for name in row:
<td>${name}</td>
% endfor
</tr>
</%def>

Mako官方文档

检测网站在全国各地能否打开的检测工具

mrnaas阅读(3796)

由于日常工作遇到了,需要检测不同网络访问公司网站的正常所以查询了 资料,找到这些网址,分享一下!
此文章不再更新,更多方式参考最新分享的文章测试网站访问速度的5个方法

1、阿里旗下的 http://alibench.com/(已经打不开了)

2、http://www.17ce.com/

3、ping.chinaz.com

4、用Ping命令简单测网站速度的方法

Ping结果属于表示,bytes表示发送多少字节,time是时间,时间越小速度越快,TTL可以判断对方操作系统,TTL=119是XP系统,但TTL一般不准,服务器可以修改注册表更改TTL类型,更详细测速的办法,请多多搜索。

新手只需看最下面一行即可,最短时间、最长时间和平均时间(时间越短越好),这样你就能大致判断出网站的速度了。

5、用tracert命令简单测网站速度的方法

6、全方位的免费网站速度测试工具 — GTmetrix

 

欢迎大家关注公众号:

常用的正则表达式

mrnaas阅读(957)

[^\x00-\xff]  //双字节字符(包括汉字在内)

[\u4e00-\u9fa5]  //中文字符

\n\s*\r  //空白行

^\s*|\s*$   //首尾空白字符

^[a-zA-Z][a-zA-Z0-9_]{4,15}$   //帐号: 字母开头,5-16字节,字母数字可加下划线

\d{3}-\d{8}|\d{4}-\d{7} //电话号码

 [1-9][0-9]{4,}  //QQ

 [1-9]\d{5}(?!\d)   //邮编

\d{15}|\d{18}   //身份证

\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*  //Email地址

<(\S*?)[^>]*>.*?</\1>|<.*? />   //HTML标记

\d+\.\d+\.\d+\.\d+   //IP地址

[a-zA-z]+://[^\s]*   //网址URL

特定字符串的匹配:

^[A-Za-z]+$  //匹配由26个英文字母组成的字符串

^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串

^[a-z]+$  //匹配由26个英文字母的小写组成的字符串

^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串

^\w+$  //匹配由数字、26个英文字母或者下划线组成的字符串

特定数字:

^[1-9]\d*$    //正整数

^-[1-9]\d*$   //负整数

^-?[1-9]\d*$   //整数

^[1-9]\d*|0$  //非负整数

^-[1-9]\d*|0$   //非正整数

^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$   //正浮点数

^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$  //负浮点数

^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$  //浮点数

^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$   //非负浮点数

^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$  //非正浮点数

Redis命令总结

mrnaas阅读(1135)

Redis提供了丰富的命令(command)对数据库和各种数据类型进行操作,这些command可以在Linux终端使用。在编程时,比如使用Redis 的Java语言包,这些命令都有对应的方法,比如上面例子中使用的sadd方法,就是对集合操作中的SADD命令。下面将Redis提供的命令做一总结。

连接操作相关的命令
Ÿ  quit:关闭连接(connection)

Ÿ   auth:简单密码认证

对value操作的命令
Ÿ  exists(key):确认一个key是否存在

Ÿ   del(key):删除一个key

Ÿ   type(key):返回值的类型

Ÿ  keys(pattern):返回满足给定pattern的所有key

Ÿ  randomkey:随机返回key空间的一个key

Ÿ   rename(oldname, newname):将key由oldname重命名为newname,若newname存在则删除newname表示的key

Ÿ  dbsize:返回当前数据库中key的数目

Ÿ  expire:设定一个key的活动时间(s)

Ÿ   ttl:获得一个key的活动时间

Ÿ   select(index):按索引查询

Ÿ   move(key, dbindex):将当前数据库中的key转移到有dbindex索引的数据库

Ÿ  flushdb:删除当前选择数据库中的所有key

Ÿ  flushall:删除所有数据库中的所有key

对String操作的命令
Ÿ   set(key, value):给数据库中名称为key的string赋予值value

Ÿ  get(key):返回数据库中名称为key的string的value

Ÿ   getset(key, value):给名称为key的string赋予上一次的value

Ÿ   mget(key1, key2,…, key N):返回库中多个string(它们的名称为key1,key2…)的value

Ÿ   setnx(key, value):如果不存在名称为key的string,则向库中添加string,名称为key,值为value

Ÿ   setex(key, time, value):向库中添加string(名称为key,值为value)同时,设定过期时间time

Ÿ   mset(key1, value1, key2, value2,…key N, value N):同时给多个string赋值,名称为key i的string赋值value i

Ÿ   msetnx(key1, value1, key2, value2,…key N, value N):如果所有名称为key i的string都不存在,则向库中添加string,名称key i赋值为value i

Ÿ  incr(key):名称为key的string增1操作

Ÿ   incrby(key, integer):名称为key的string增加integer

Ÿ  decr(key):名称为key的string减1操作

Ÿ   decrby(key, integer):名称为key的string减少integer

Ÿ   append(key, value):名称为key的string的值附加value

Ÿ   substr(key, start, end):返回名称为key的string的value的子串

对List操作的命令
Ÿ   rpush(key, value):在名称为key的list尾添加一个值为value的元素

Ÿ   lpush(key, value):在名称为key的list头添加一个值为value的 元素

Ÿ  llen(key):返回名称为key的list的长度

Ÿ   lrange(key, start, end):返回名称为key的list中start至end之间的元素(下标从0开始,下同)

Ÿ   ltrim(key, start, end):截取名称为key的list,保留start至end之间的元素

Ÿ   lindex(key, index):返回名称为key的list中index位置的元素

Ÿ   lset(key, index, value):给名称为key的list中index位置的元素赋值为value

Ÿ   lrem(key, count, value):删除count个名称为key的list中值为value的元素。count为0,删除所有值为value的元素,count>0从头至尾删除count个值为value的元素,count<0从尾到头删除|count|个值为value的元素。

Ÿ  lpop(key):返回并删除名称为key的list中的首元素

Ÿ  rpop(key):返回并删除名称为key的list中的尾元素

Ÿ   blpop(key1, key2,… key N, timeout):lpop命令的block版本。即当timeout为0时,若遇到名称为key i的list不存在或该list为空,则命令结束。如果timeout>0,则遇到上述情况时,等待timeout秒,如果问题没有解决,则对key i+1开始的list执行pop操作。

Ÿ   brpop(key1, key2,… key N, timeout):rpop的block版本。参考上一命令。

Ÿ   rpoplpush(srckey, dstkey):返回并删除名称为srckey的list的尾元素,并将该元素添加到名称为dstkey的list的头部

对Set操作的命令
Ÿ   sadd(key, member):向名称为key的set中添加元素member

Ÿ   srem(key, member) :删除名称为key的set中的元素member

Ÿ   spop(key) :随机返回并删除名称为key的set中一个元素

Ÿ   smove(srckey, dstkey, member) :将member元素从名称为srckey的集合移到名称为dstkey的集合

Ÿ   scard(key) :返回名称为key的set的基数

Ÿ   sismember(key, member) :测试member是否是名称为key的set的元素

Ÿ   sinter(key1, key2,…key N) :求交集

Ÿ   sinterstore(dstkey, key1, key2,…key N) :求交集并将交集保存到dstkey的集合

Ÿ   sunion(key1, key2,…key N) :求并集

Ÿ   sunionstore(dstkey, key1, key2,…key N) :求并集并将并集保存到dstkey的集合

Ÿ   sdiff(key1, key2,…key N) :求差集

Ÿ   sdiffstore(dstkey, key1, key2,…key N) :求差集并将差集保存到dstkey的集合

Ÿ   smembers(key) :返回名称为key的set的所有元素

Ÿ   srandmember(key) :随机返回名称为key的set的一个元素

对zset(sorted set)操作的命令
Ÿ   zadd(key, score, member):向名称为key的zset中添加元素member,score用于排序。如果该元素已经存在,则根据score更新该元素的顺序。

Ÿ   zrem(key, member) :删除名称为key的zset中的元素member

Ÿ   zincrby(key, increment, member) :如果在名称为key的zset中已经存在元素member,则该元素的score增加increment;否则向集合中添加该元素,其score的值为increment

Ÿ   zrank(key, member) :返回名称为key的zset(元素已按score从小到大排序)中member元素的rank(即index,从0开始),若没有member元素,返回“nil”

Ÿ   zrevrank(key, member) :返回名称为key的zset(元素已按score从大到小排序)中member元素的rank(即index,从0开始),若没有member元素,返回“nil”

Ÿ   zrange(key, start, end):返回名称为key的zset(元素已按score从小到大排序)中的index从start到end的所有元素

Ÿ   zrevrange(key, start, end):返回名称为key的zset(元素已按score从大到小排序)中的index从start到end的所有元素

Ÿ   zrangebyscore(key, min, max):返回名称为key的zset中score >= min且score <= max的所有元素

Ÿ  zcard(key):返回名称为key的zset的基数

Ÿ   zscore(key, element):返回名称为key的zset中元素element的score

Ÿ   zremrangebyrank(key, min, max):删除名称为key的zset中rank >= min且rank <= max的所有元素

Ÿ   zremrangebyscore(key, min, max) :删除名称为key的zset中score >= min且score <= max的所有元素

Ÿ   zunionstore / zinterstore(dstkeyN, key1,…,keyN, WEIGHTS w1,…wN, AGGREGATE SUM|MIN|MAX):对N个zset求并集和交集,并将最后的集合保存在dstkeyN中。对于集合中每一个元素的score,在进行AGGREGATE运算前,都要乘以对于的WEIGHT参数。如果没有提供WEIGHT,默认为1。默认的AGGREGATE是SUM,即结果集合中元素的score是所有集合对应元素进行SUM运算的值,而MIN和MAX是指,结果集合中元素的score是所有集合对应元素中最小值和最大值。

对Hash操作的命令
Ÿ   hset(key, field, value):向名称为key的hash中添加元素field<—>value

Ÿ   hget(key, field):返回名称为key的hash中field对应的value

Ÿ   hmget(key, field1, …,field N):返回名称为key的hash中field i对应的value

Ÿ   hmset(key, field1, value1,…,field N, value N):向名称为key的hash中添加元素field i<—>value i

Ÿ   hincrby(key, field, integer):将名称为key的hash中field的value增加integer

Ÿ   hexists(key, field):名称为key的hash中是否存在键为field的域

Ÿ   hdel(key, field):删除名称为key的hash中键为field的域

Ÿ  hlen(key):返回名称为key的hash中元素个数

Ÿ  hkeys(key):返回名称为key的hash中所有键

Ÿ  hvals(key):返回名称为key的hash中所有键对应的value

Ÿ  hgetall(key):返回名称为key的hash中所有的键(field)及其对应的value

持久化
Ÿ   save:将数据同步保存到磁盘

Ÿ   bgsave:将数据异步保存到磁盘

Ÿ  lastsave:返回上次成功将数据保存到磁盘的Unix时戳

Ÿ  shundown:将数据同步保存到磁盘,然后关闭服务

远程服务控制
Ÿ   info:提供服务器的信息和统计

Ÿ   monitor:实时转储收到的请求

Ÿ   slaveof:改变复制策略设置

Ÿ  config:在运行时配置Redis服务器