koa中使用session和redis缓存

下载插件

npm i koa-generic-session  --save
npm i koa-redies --save

用就行不要去理解

const session = require('koa-generic-session')
const Redis = require('koa-redis')
const Store = new Redis().client
app.keys = ['saffasfassadasd', 'safasf'];
// 对session进行加密的key
app.use(session({
  prefix:"aaafsfa", // 给session对象在redis存储的地址名前面添加的前缀内容
  key:"abc", // key名
  store:new Redis() // 在Redis中放入一个session对象
}))
router.get('/', async function (ctx, next) {
  ctx.session.name = ctx.request.query.name
  // 从url中获取name值赋给session
  const st = await Store.hset('fix','name',ctx.request.query.name)
  // 给fix存储地址类型是hash
  const a = await Store.get("aaafsfa"+ctx.cookies.get("abc"))
  // 获取括号中地址的字符串sting类型
  console.log(JSON.parse(a).name)
  // 转化成对象
  ctx.body = 'this is a users response!'
	
	// hash (哈希 和对象差不多) hget hset
	// string 字符串 get set

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

// 创建集合 set

// 内容不会重复的集合  如果有这个value就不会再添加进去了
Store.sadd("key1", "v3");
Store.sadd("key1", "v6");
Store.sadd("key1", "v1");

在这里插入图片描述
set

// 查询set中数据
 var key = "key1";
 Store.multi()
      .sismember(key, 'v1') // key1集合中是否存在v1
      .sismember(key, 'v6') 
      .sismember(key, 'v2') 
      .smembers(key) // 查询key1集合中所有的value
      .exec(function (err, replies) {
        console.log("MULTI got " + replies.length + " replies");
        console.log(replies) // 代表上面查询的结果的集合
        replies.forEach(function (reply, index) { // 遍历出每一个结果返回出来
          console.log("Reply " + index + ": " + reply.toString());
        });
      });
      

在这里插入图片描述

console.log(await Store.smembers("key1")) // 直接返回所有的set

在这里插入图片描述

console.log(Store.smembers("key1"))

在这里插入图片描述
list

// 提交list类型的数据
  Store.rpush("mylist", "bbb")
  Store.rpush("mylist", "ccc")
  Store.lpush("mylist", "aaa") // 会将这个值放到list数据的最上面
  console.log(await Store.rpop("mylist")) // ccc
  // 作用是删除list中的最后一条数据

下图我最后执行了一次Store.rpush(“mylist”, “aaa”)
在这里插入图片描述
有序集合(SortedSets)

Store.zadd(['zdb',0,'mysql', 1,'mongo',2,'redis'], function(err, data) {
    console.log(data);           // 3
  })
  // [地址,0,'mysql', 1,'mongo',2,'redis']
Store.zrange(["zdb",0,2], function(err, data) { // 获取zdb中0-2之间的元素
  console.log(data);           // [ 'redis', 'mysql', 'redis' ]
})
Store.zrank(["zdb","mongo"], function(err, data) { // 返回mongo在zdb中的位置
// 位置从0开始算
      console.log(data);           //1
    })

在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值