Redis操作命令大全(NodeJS版)

时间:2023-01-31 23:26:03

/*——————————————————————————————

* 本文案例基于以下运行环境:

* 系统: 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版)的更多相关文章

  1. Redis操作命令大全

    一.key pattern 查询相应的key (1)redis允许模糊查询key 有3个通配符  *.?.[] (2)randomkey:返回随机key (3)type key:返回key存储的类型 ...

  2. redis命令大全参考手册

    redis功能强大,支持数据类型丰富,以下是redis操作命令大全,基本上涵盖了redis所有的命令,并附有解释说明,大家可以收藏.参考,你一定要知道的是:redis的key名要区分大小写,在redi ...

  3. Redis 3.0正式版发布,正式支持Redis集群

    Redis是一个开源.基于C语言.基于内存亦可持久化的高性能NoSQL数据库,同时,它还提供了多种语言的API.近日,Redis 3.0在经过6个RC版本后,其正式版终于发布了.Redis 3.0的最 ...

  4. MongoDB(1):常用操作命令大全

    MongoDB常用操作命令大全(转) http://www.jb51.net/article/48217.htm 成功启动MongoDB后,再打开一个命令行窗口输入mongo,就可以进行数据库的一些操 ...

  5. 《代码大全(第二版)》【PDF】下载

    <代码大全(第二版)>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382264 内容简介 <代码大全(第2版)>是著 ...

  6. 网易短信接口集成 nodejs 版

    /* name:网易短信服务集成nodejs版: author:zeq time:20180607 test: // checkValidCode('157****6954','284561').th ...

  7. 必应API接口nodejs版

    近期,在研究百度.必应.API等的url提交API时,发现有用Go语言做工具的大佬的分享 利用 API 自动向搜索引擎提交网址(Go语言版) - pyList. 其中提到bing API提交方法,并给 ...

  8. Redis操作命令

    1)连接操作命令    quit:关闭连接(connection)    auth:简单密码认证    help cmd: 查看cmd帮助,例如:help quit        2)持久化    s ...

  9. 一步步学会用docker部署应用&lpar;nodejs版&rpar;

    一步步学会用docker部署应用 docker是一种虚拟化技术,可以在内核层隔离资源.因此对于上层应用而言,采用docker技术可以达到类似于虚拟机的沙盒环境.这大大简化了应用部署,让运维人员无需陷入 ...

随机推荐

  1. 《BI那点儿事》Microsoft 线性回归算法

    Microsoft 线性回归算法是 Microsoft 决策树算法的一种变体,有助于计算依赖变量和独立变量之间的线性关系,然后使用该关系进行预测.该关系采用的表示形式是最能代表数据序列的线的公式.例如 ...

  2. EDIUS校正颜色轮的方法

    小伙伴平时肯定能在网络上看到各种各样的视频吧,它们有的搞笑,有的炫酷,有的教育......那么你们有没有想过做出带有自己创意的视频呢?其实这个愿望很容易实现的,学好一款视频编辑软件就可以了.今天小编就 ...

  3. SQL小细节

    平时有些小细节,不留意的话很容易得到错误的答案,我们来看下下面的代码,看看你是否能答对呢? ) ,) SELECT @str = '中国CH',@info='MyTest' SELECT [字符串]= ...

  4. Winamp传统外观皮肤MusicRio发放

    这款皮肤是我在2002年自己弄的,如果能给还在使用Winamp的朋友使用那就最好了. 下载地址:http://files.cnblogs.com/lzhdim/MusicRio.rar

  5. 产品研发管理(二):使用SubVersion进行代码管理

    概述 这是产品研发管理系列文章的第二篇:使用SubVersion进行代码管理. 介绍如何使用SubVersion的资料已经许多,这里不准备介绍如何使用SubVersion. 这篇文章主要介绍如何进行代 ...

  6. 什么是Hash&quest;Hash有哪些特性?

    Hash 把任意长度的输入通过散列算法变换成固定长度的输出 Hash的特性: 输入域无穷,输出域有限.例如:有无穷多个(在工程中可以具体到多少个,例如1000)输入参数经过hash函数映射后得到有限的 ...

  7. MFC 修改标题

    1. Overwrite CMainFrame::PreCreateWindow. Clear the style FWS_ADDTOTITLE cs.style &= ~(LONG)FWS_ ...

  8. 转载——JavaScript学习笔记:取数组中最大值和最小值

    转载自:http://www.w3cplus.com/javascript/calculate-the-max-min-value-from-an-array.html. 取数组中最大值 可以先把思路 ...

  9. Linux 文件普通权限&lowbar;011

    一.文件权限10个字符对应类型和权限 二.Linux普通文件和Linux目录读.写.执行权限说明 标注:Linux 中的文件名是存在于父目录的block里面,并指向这个文件的inode节点 1.lin ...

  10. Linux基本数据类型大小——int&comma;char&comma;long int&comma;long long int

    转自:http://paddy-w.iteye.com/blog/1403217 在Linux操作系统下使用GCC进行编程,目前一般的处理器为32位字宽,下面是/usr/include/limit.h ...