在Node.js中使用Redis
- Redis基本介绍
- Redis的基本使用
- Express项目中Redis代码的组织
Rdis基本介绍
- 基本功能
- 基本工具
基本功能:
- 缓存系统
- 数据存储
- 消息中介
基本工具:
- 服务启动工具
- 命令行客户端工具
- GUI工具
redis-server启动redis服务,不过不能关闭这个连接。
但是可以用守护进程的方式启动,需要修改配置文件
- 使用vim /etc/redis.conf
- 修改daemonize的no为yes
- 使用命令redis-server /ect/redis.conf让redis以守护进程的方式完成启动
- redis-cli命令直接连接
- redis-cli --help连接帮助
- redis-cli -h 127.0.0.1 -p 6379指定ip和端口连接
redis的基本使用
- 存储和获取值
命令行运行redis:
set.js:
var redis = require('redis');
var client = redis.createClient(6379, 'localhost');
client.set('hello', {a: 1, b: 2});
client.get('hello', function(err,v){
console.log('redis get hello err, v:', err, v);
})
运行set.js
查看上传:
- 列表:直接插入数据,不管里面有没有
client.js:
var redis = require('redis');
module.exports = redis.createClient(6379, 'localhost');
lists.js:
var client = require('./client');
client.rpush('testLists', 'a'); //先在命令行运行两次代码,然后把roush和lpush操作注释
client.rpush('testLists', 'b');
client.rpush('testLists', 'c');
client.rpush('testLists', 1);
client.lpush('testLists', 2);
client.lpop('testLists', function(err, v){
console.log('client.lpop, err, v:', err, v);
});
client.rpop('testLists', function(err, v){
console.log('client.rpop, err, v:', err, v);
});
client.lrange('testLists', 0, -1, function(err, lists){
console.log('client.lrange, err, lists:', err, lists);
});
运行结果:
具体可以看这个朋友写的redis学习总结:
Redis学习手册
- 集合:插入时先看集合里有相同的数据没有,有就不插入,没有才插入
client.js:
var redis = require('redis');
module.exports = redis.createClient(6379, 'localhost');
sets.js:
var client = require('./client');
client.sadd('testSet', 1);
client.sadd('testSet', 'a');
client.sadd('testSet', 'bb');
client.smembers('testSet', function(err, v){
console.log('client.smembers err, v:', err, v);
})
运行结果:
列表和集合的区别:
列表:直接插入数据,不管里面有没有;集合:插入时先看集合里有相同的数据没有,有就不插入,没有才插入
- 消息中介
client.js:
var redis = require('redis');
module.exports = redis.createClient(6379, 'localhost');
sub.js(订阅):
var client = require('./client');
client.subscribe('testPublish');
client.on('message', function(channel, msg){
console.log('client.on message, channel:', channel, 'message:', msg);
});
pub.js(发布):
var client = require('./client');
client.publish('testPublish', 'message from pub.js');
运行结果: