登录
注册
node.js 学习社区
linux 使用 node 操作 redis 数据库

埃岚德龙

2018-03-13 13:53

保证网络畅通,选定好下载工作路径,执行以下命令下载redis-3.2.6:

sudo wget http://download.redis.io/releases/redis-3.2.6.tar.gz

image_1b6m31h8a1e9s12hobbkpev1j2i9.png-69.8kB

解压该文件:

 sudo tar -zxvf redis-3.2.6.tar.gz

会在当前目录下生成文件夹redis-3.2.6,我把它移动到了/usr/redis目录下:
  
image_1b6m36d3q1t2l11cm1bdc1j573vn13.png-6.4kB
  
如果没有安装gcc,需要先安装:

sudo apt-get install gcc

进入到redis-3.2.6目录下,依次执行下面两条命令:

sudo make
sudo make install

会安装到目录/usr/local/bin下:
  
  image_1b6m3cs7r1dtvovi15nn10t11fll1g.png-42.1kB
  
现在进入先前解压后得到的文件夹(我的在/usr/redis),复制配置文件redis.conf到/etc/redis/下,并用vi命令编辑该文件,将“daemonize no”修改为“daemonize yes”,即设置成作为后台进程运行,修改完成后保存退出。
  
进入到/usr/local/bin目录下,执行命令:(默认端口6379)

redis-server /etc/redis/redis.conf
redis-cli -p 6379 

然后执行命令ping,若输出为pong,则证明服务成功启动。
  image_1b6m3smlfhkio3olnq1lflit01t.png-20.2kB
  
执行命令

 set k1 helloworld
 get ki 

会输出如下信息:
  
image_1b6m3ufkk1028fje2kf1d4u69p2a.png-9.6kB
  
执行quit命令退出,现在可以通过下面的命令查看到该进程:

 ps -ef |grep redis 

image_1b6m406em17j0snjfs1of710hq2n.png-18.7kB

node 下操作redis

npm install redis

var redis = require('redis');
// redis配置参数
var redis_config = {
    "host": "",
    "port": 6379
};
var redisClient = redis.createClient(redis_config);
//redis默认连接数据库0,可以利用select选择指定数据库0~15
redisClient.select("15", function (err) {
   if (err) {
       return false;
   } else {
       console.log('connect success');
   }   
});

//操作
redisClient.set('string key', 'string value', function (err, reply) {
    if (err) return false;
    console.log(reply);     // 设置成功,返回值为OK,数据更改直接更改对应的value即可,返回值也为OK。
});
redisClient.set('string key1', 'string value1', redis.print);       // 此种方式直接在命令行打印返回值。
redisClient.get('string key', function (err, reply) {
    if (err) return false;
    console.log(reply);     // 取值成功,返回指定键值对应的value,若键值不存在,返回null
});
redisClient.exists('string key2', function (err, reply) {
    if (err) return false;
    console.log(reply);     // 键存在,返回1,否则返回0
});
redisClient.del('string key1', function (err, reply) {
    if (err) return false;
    console.log(reply);     // 删除成功,返回1,否则返回0(对于不存在的键进行删除操作,同样返回0)
});
redisClient.randomkey(function (err, reply) {
    if (err) return false;
    console.log(reply);     // 随机返回一个键
});

redisClient.set('string key', 'string value', function(err, reply) {
    if (err) return false;
    console.log(reply);
});

redisClient.expire('string key', 1, function(err, reply) {
    if (err) return false;
    console.log(reply);
});

redisClient.get('string key', function (err, reply) {
    if (err) return false;
    console.log(reply);     // 取值成功,返回指定键值对应的value,若键值不存在,返回null
});

setTimeout(function () {
    redisClient.get('string key', function (err, reply) {
        if (err) console.log(err);
        console.log(reply);     // 取值成功,返回指定键值对应的value,若键值不存在,返回null
    });
}, 1100); 

原文地址:http://blog.csdn.net/xiangwanpeng/article/details/54586087

回复 · 0

发表回复

你可以在回复中 @ 其他人