/*——————————————————————————————
* 本文案例基于以下运行环境:
* 系统: CentOS 5.x
* NodeJS版本: 0.9 以上
* Redis版本: 2.8
* Redis-nodejs 扩展: 0.12.1
/*——————————————————————————————
Part 1: 安装扩展
使用以下命令:
npm -g install redis
Redis实例:
Host: 127.0.0.1 Port: 6379
Part 2: 实例
var redis = require("redis"),
client = redis.createClient(6379,"127.0.0.1");
client.info(function(err,response){
console.log(err,response);
}); //如果这个查询没有错误,err的值是null
创建REDIS连接
以下代码展示创建一个redis socket连接,并且查询redis服务器信息,也就是 redis-cli INFO 命令
var redis = require("redis");
var client = redis.createClient(6379,'127.0.0.1'); client.info(function(err,response){
console.log(err,response);
});
上面代码延伸出的一些问题:
1. 如果服务器没有连接上,会怎样?
2. 如果连接超时,怎么处理?
对于以上问题,我们需要对代码进行一些修改,以便更好地进行错误处理,这将是一个好的变成习惯.
createClient(port,host,options)
这个函数接受三个参数,第一个是连接端口,第二个是主机IP/名称,第三个参数则是配置项,KEY=>VALUE形式 例如:
var client = redis.createClient(63719,'127.0.0.1',{connect_timeout:1}); //增加超时选项 错误处理:
Nodejs 错误处理机制有2种,1种是同步操作时可以使用 try ... catch ..来捕获错误,
另外一种就是事件了, redisClient 有一个error 的事件,当出错的时候变回emmit 这个事件,使用方法: client.on('error',function(error){
console.log(error);
});
Set
client.set(key,value,callback),callback 函数有2个回调参数,error和response, error表示操作过程中的错误提示值为null表示没有错误,response为布尔值client.set("Roban","lee",function(err,response){
console.log(err,response);
});
Get
client.get(key,callback),callback 函数有2个回调参数,error和response, error表示操作过程中的错误提示值为null表示没有错误,response为获取到的值,null表示没有获取到数据client.get("Roban",function(err,response){
console.log(err,response); //will print lee
});
Hset
client.hset(hashkey,field,value,callback) 哈希数据类型, 第一个参数为KEY名称,第二个为需要设置的字段KEY,第三个为值,第四个参数为回调参数,内容和set一致client.hset("roban:demo:hset","today","fine",function(err,response){
console.log(err,response);
});
Hmset
client.hmset(hashkey,field,value,field,value ….. callback) 哈希数据类型, 第一个参数为KEY名称,后面的参数为不固定参数,数据格式是 key,value ,key, value client.hset("roban:demo:hset","lastday","notgood","nextday","willbefine",function(err,response){
console.log(err,response);
});
Hget
client.hget(hashkey,field,callback) 获取hash数据中的某一个字段值client.hset("roban:demo:hset","today",function(err,response){
console.log(err,response);
});
Hgetall
client.hgetall(hashkey,callback) 获取hash数据种所有的数据,包括字段与值client.hset("roban:demo:hset",function(err,response){
console.log(err,response);
});
BLpop
阻塞式弹出队列数据,从数据顶部(左侧)弹出,当 BLPOP 被调用时,如果给定 key 内至少有一个非空列表,那么弹出遇到的第一个非空列表的头元素,并和被弹出元素所属的列表的名字一起,组成结果返回给调用者。当存在多个给定 key 时, BLPOP 按给定 key 参数排列的先后顺序,依次检查各个列表。
语法:
BLPOP key [key ...] timeout
以下代码表示,阻塞roban:demo:blpop这个队列10秒钟,如果有数据,立刻从左侧弹出,如果没有,持续阻塞,直到10秒
client.blpop("roban:demo:blpop",10,function(err,response){
console.log(err,response);
});
BRpop
阻塞式弹出队列数据,从数据尾部(右侧)弹出,当给定多个 key 参数时,按参数 key 的先后顺序依次检查各个列表,弹出第一个非空列表的尾部元素。使用方法同 BLPOP一致,只是数据弹出的方式不一样
语法:
BRPOP key [key ...] timeout
client.brpop("roban:demo:blpop",10,function(err,response){
console.log(err,response);
});
SADD
将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略。
假如 key 不存在,则创建一个只包含 member 元素作成员的集合。
当 key 不是集合类型时,返回一个错误。
语法:
SADD key member [member ...]
client.sadd("roban:demo:sdemo",hello,this,fuck,world,function(err,response){
console.log(err,response);
});
SCARD
返回集合 key 的基数(集合中元素的数量)。
语法:
SCARD key
client.scard("roban:demo:sdemo",function(err,response){
console.log("Number of key roban:demo:sdemo is:" + response);
});
SPOP
移除并返回集合中的一个随机元素。
如果只想获取一个随机元素,但不想该元素从集合中被移除的话,可以使用 SRANDMEMBER 命令。
语法:
SPOP key
client.spop("roban:demo:sdemo",function(err,response){
console.log("Poped value of key roban:demo:sdemo is:" + response);
});
SRANDMEMBER
如果命令执行时,只提供了 key 参数,那么返回集合中的一个随机元素。
从 Redis 2.6 版本开始, SRANDMEMBER 命令接受可选的 count 参数:
1. 如果 count 为正数,且小于集合基数,那么命令返回一个包含 count 个元素的数组,数组中的元素各不相同。如果 count 大于等于集合基数,那么返回整个集合。
2. 如果 count 为负数,那么命令返回一个数组,数组中的元素可能会重复出现多次,而数组的长度为 count 的绝对值。
该操作和 SPOP 相似,但 SPOP 将随机元素从集合中移除并返回,而 SRANDMEMBER 则仅仅返回随机元素,而不对集合进行任何改动。
语法:
SRANDMEMBER key [count]
client.srandmember("roban:demo:sdemo",function(err,response){
console.log("Poped value of key roban:demo:sdemo is:" + response);
});
Redis操作命令大全(NodeJS版)的更多相关文章
-
Redis操作命令大全
一.key pattern 查询相应的key (1)redis允许模糊查询key 有3个通配符 *.?.[] (2)randomkey:返回随机key (3)type key:返回key存储的类型 ...
-
redis命令大全参考手册
redis功能强大,支持数据类型丰富,以下是redis操作命令大全,基本上涵盖了redis所有的命令,并附有解释说明,大家可以收藏.参考,你一定要知道的是:redis的key名要区分大小写,在redi ...
-
Redis 3.0正式版发布,正式支持Redis集群
Redis是一个开源.基于C语言.基于内存亦可持久化的高性能NoSQL数据库,同时,它还提供了多种语言的API.近日,Redis 3.0在经过6个RC版本后,其正式版终于发布了.Redis 3.0的最 ...
-
MongoDB(1):常用操作命令大全
MongoDB常用操作命令大全(转) http://www.jb51.net/article/48217.htm 成功启动MongoDB后,再打开一个命令行窗口输入mongo,就可以进行数据库的一些操 ...
-
《代码大全(第二版)》【PDF】下载
<代码大全(第二版)>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382264 内容简介 <代码大全(第2版)>是著 ...
-
网易短信接口集成 nodejs 版
/* name:网易短信服务集成nodejs版: author:zeq time:20180607 test: // checkValidCode('157****6954','284561').th ...
-
必应API接口nodejs版
近期,在研究百度.必应.API等的url提交API时,发现有用Go语言做工具的大佬的分享 利用 API 自动向搜索引擎提交网址(Go语言版) - pyList. 其中提到bing API提交方法,并给 ...
-
Redis操作命令
1)连接操作命令 quit:关闭连接(connection) auth:简单密码认证 help cmd: 查看cmd帮助,例如:help quit 2)持久化 s ...
-
一步步学会用docker部署应用(nodejs版)
一步步学会用docker部署应用 docker是一种虚拟化技术,可以在内核层隔离资源.因此对于上层应用而言,采用docker技术可以达到类似于虚拟机的沙盒环境.这大大简化了应用部署,让运维人员无需陷入 ...
随机推荐
-
《BI那点儿事》Microsoft 线性回归算法
Microsoft 线性回归算法是 Microsoft 决策树算法的一种变体,有助于计算依赖变量和独立变量之间的线性关系,然后使用该关系进行预测.该关系采用的表示形式是最能代表数据序列的线的公式.例如 ...
-
EDIUS校正颜色轮的方法
小伙伴平时肯定能在网络上看到各种各样的视频吧,它们有的搞笑,有的炫酷,有的教育......那么你们有没有想过做出带有自己创意的视频呢?其实这个愿望很容易实现的,学好一款视频编辑软件就可以了.今天小编就 ...
-
SQL小细节
平时有些小细节,不留意的话很容易得到错误的答案,我们来看下下面的代码,看看你是否能答对呢? ) ,) SELECT @str = '中国CH',@info='MyTest' SELECT [字符串]= ...
-
Winamp传统外观皮肤MusicRio发放
这款皮肤是我在2002年自己弄的,如果能给还在使用Winamp的朋友使用那就最好了. 下载地址:http://files.cnblogs.com/lzhdim/MusicRio.rar
-
产品研发管理(二):使用SubVersion进行代码管理
概述 这是产品研发管理系列文章的第二篇:使用SubVersion进行代码管理. 介绍如何使用SubVersion的资料已经许多,这里不准备介绍如何使用SubVersion. 这篇文章主要介绍如何进行代 ...
-
什么是Hash?Hash有哪些特性?
Hash 把任意长度的输入通过散列算法变换成固定长度的输出 Hash的特性: 输入域无穷,输出域有限.例如:有无穷多个(在工程中可以具体到多少个,例如1000)输入参数经过hash函数映射后得到有限的 ...
-
MFC 修改标题
1. Overwrite CMainFrame::PreCreateWindow. Clear the style FWS_ADDTOTITLE cs.style &= ~(LONG)FWS_ ...
-
转载——JavaScript学习笔记:取数组中最大值和最小值
转载自:http://www.w3cplus.com/javascript/calculate-the-max-min-value-from-an-array.html. 取数组中最大值 可以先把思路 ...
-
Linux 文件普通权限_011
一.文件权限10个字符对应类型和权限 二.Linux普通文件和Linux目录读.写.执行权限说明 标注:Linux 中的文件名是存在于父目录的block里面,并指向这个文件的inode节点 1.lin ...
-
Linux基本数据类型大小——int,char,long int,long long int
转自:http://paddy-w.iteye.com/blog/1403217 在Linux操作系统下使用GCC进行编程,目前一般的处理器为32位字宽,下面是/usr/include/limit.h ...