首先 安装 redis ,
brew install redis
启动redis
redis-server
koa环境下 需要依赖两个中间件去操作redis
npm i -S redis koa-redis
npm i -S redis koa-generic-session
在 app.js增加
const session = require('koa-generic-session')
const Redis = require('koa-redis')
//app.keys内容可以随便填,一般是随机字符串。作用是用来加密cookie
app.keys = ['md5', 'base64']
// session使用了redis存储
app.use(session({
store: new Redis()
}))
一般来说 redis 存储 有两种场景。
1, 配合session来使用
2, 符合 快速查询特点的数据,也可以直接操作 redis ,下面有实力
在路由中使用 命令
// 统计pv,只有session 操作到了才会 种植session
ctx.session.count++
可以看到 有两个session被种植到了cookie ,都是httponly的
,
如果要修改自己的session名字那么的话
app.use(session({
key:'ddd', // 修改session的key
prefix:'lllsss', // 修改服务器存储的前缀
store: new Redis()
}))
现在我们查看redis的数据
1, 启动cli 命令行工具
redis-cli
2 ,使用命令查看全部
keys *
3, 使用get 查看value
get lllsssHjxwTpPF8vkite1i11lwn6z3H0ALi0Fl
得到
"{\"cookie\":{\"httpOnly\":true,\"path\":\"/\",\"overwrite\":true,\"signed\":true,\"maxAge\":86400000},\"count\":8}"
下面是直接使用redis的实例
const Redis = require('koa-redis')
const Store = new Redis().client
// 访问这个接口
router.get('/getRedis',async function(ctx) {
let code
try{
code=0
// 操作redis
await Store.hset('getRedis','name',Math.random())
}catch (e) {
code=1
}
ctx.body = {
code
}
})
最后 通过命令 hget getRedis name 可以查询得到 值