简单介绍:Redis是一个常用的Nosql数据库,一般用来代替Memcached做缓存服务,同时它也支持数据的持久化,
有着比较广泛的应用场景。在Java中使用redis我们已经比较熟悉了,
那么在node.js和koa.js框架中使用Redis的正确姿势是怎样的呢?
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
Redis 与其他 key - value 缓存产品有以下三个特点:
- Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
- Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
- Redis支持数据的备份,即master-slave模式的数据备份。
Redis常用命令可以参考http://www.runoob.com/redis/redis-keys.html
Node.js已经有很多redis相关的库,我在npm.org上搜了下大概有十几个吧,其中经常使用的redis,co-redis。
由于我用koa做web框架,因此就直接用了koa-redis。
这篇文章涉及koa.js,yield生成器和Promise相关的知识,需要先对这些概念有一定的认识。
以下是一些koa-redis的操作
此案例以连接远程的redis为例子,不在本地下载redis和启动服务。
1.安装相关依赖。
npm i koa-generic-session redis koa-redis koa
复制代码
2.配置一些redis的参数
let redisStore = require("koa-redis");
let app = new koa();
let options = {
host: "127.0.0.1",
port: 6379,
db: 0,
// pass: "UFbCL%162WPB8Eyq",
};
let store = redisStore(options);
复制代码
redis连接的参数大全:
Options
- {Object} client redis client
- {String} host redis connect host (without options.client)
- {Number} port redis connect port (without options.client)
- {String} socket redis connect socket (without options.client)
- {String} db redis db
- {String} pass redis password
3.进行连接和读写
app.use(
session({
store: store,
})
);
app.use(async function (ctx, next) {
switch (ctx.url) {
case "/testKV":
await store.client.set("test1", "123");
ctx.body = await store.client.get("test1");
break;
}
});
app.listen(1234, () => {
console.log("koa is run port:1234");
});
复制代码
全部的代码
let session = require("koa-generic-session");
let koa = require("koa");
let redis = require("redis");
let redisStore = require("koa-redis");
let app = new koa();
let options = {
host: "127.0.0.1",
port: 6379,
db: 0,
// pass: "UFbCL%162WPB8Eyq",
};
let store = redisStore(options);
app.use(
session({
store: store,
})
);
app.use(async function (ctx, next) {
switch (ctx.url) {
case "/testKV":
await store.client.set("test1", "123");
ctx.body = await store.client.get("test1");
break;
}
});
app.listen(1234, () => {
console.log("koa is run port:1234");
});
复制代码
参考文档:https://github.com/koajs/koa-redis