nodejs之redis的安装与使用

redis简介

  • 开源高性能key-value存储;采用内存中(in-memory)数据集的方式,也可以采用磁盘存储方式(前者性能高,但数据可能丢失,后者正好相反)
  • 支持字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)和 有序集合(sorted sets)等;支持对复杂数据结构的高速操作。
  • 特性多,支持主从同步、pub/sub等
  • 支持多种客户端http://redis.io/clients

安装

1
2
3
npm install redis
#或者
npm install hiredis redis

注:两种都可用,区别在于性能,hiredis是非阻塞的,而且速度更快;如果安装了hiredis,node_redis则会默认以它为解析器,没安装就会用纯javascript解释器,对于学习或者开发环境,用哪个都无所谓

使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
var redis = require('redis'),
RDS_PORT = 6379, //端口号
RDS_HOST = 'localhost', //服务器ip或域名
RDS_PWD = 'password', //服务器密码
RDS_OPTS = {auth_pass: RDS_PWD}, //设置项, 若没有密码, 则设为空对象{}即可
client = redis.createClient(RDS_PORT, RDS_HOST, RDS_OPTS);

client.auth(RDS_PWD, function(){
console.log('通过认证');
});

client.on('ready', function(err){
console.log('ready');
});

client.on('connect', function(){
client.set('name', 'oulafen', redis.print)
client.get('name', redis.print)

/**
client.set(key,value,[callback]):设置单个key和value,回调函数可选
client.set([key,value],callback):与client.set(key,value,[callback]);效果一致(可以自行对上面示例源码进行修改进行测试),必须要有回调函数
client.get(key, [callback]):通过key得到value,回调函数可选, 如下可判断返回值
client.get(key, function(err, reply){
if(!err){
console.log(reply);
}
if(err){
console.log(err);
}
});
**/
});

client.on('error', function(err){
console.log('连接失败:', err); //redis连接失败后会自动再重连至少3次, 每次失败都会走error方法
});

参考:
Nodejs学习笔记(九)— 与Redis的交互(mranney/node_redis)入门