nodeJS中redis的使用

10 篇文章 0 订阅

redis是什么?与session有什么关系呢?

session的数据是就是的变量,放在nodejs进程中
进程的内存的有限,当访问量过大,session的体量就会变的很大,可能会引起内存的暴增
正式线上运行时多进程,进程之间的数据无法共享:比如,有三个进程都有个session,当我第一次登陆成功的时候命中的是第一个进程,他把我的登录信息放在自己session中去了,第二次登录命中的是第二个进程的话,结果登录失败了。

把session存放到redis就是这个问题的解决方法

原因如下
session的访问比较频繁,对性能的要求极高
session可不考虑断电丢失的数据问题
session的数据量不会太大

到底什么是redis呢?
web serversion最长远的缓存数据库,但是数据是存放在内存中的,相比于mysql起来,访问速度块,但是成本高,可存的数据量小

一般来说在项目当中既使用redis有需要使用mysql
把web server还有redis拆成两个独立的服务,两者都是可以扩展的

安装

首先下载redis:
我觉得这篇博客写的挺好的:redis安装

项目中进行使用

首先,安装驱动:

npm install redis

redis支持多种数据类型,常用的有键/值对,哈希表,链表,集合等。而且操作上面比较简单

var redis = require('redis')

var client = redis.createClient(6379, '127.0.0.1')
client.on('error', function (err) {
  console.log('Error ' + err);
});

// 1 键值对
client.set('color', 'red', redis.print);
client.get('color', function(err, value) {
  if (err) throw err;
  console.log('Got: ' + value)
  client.quit();
})

修改redis的配置文件
linux 中

/etc/redis/redis.conf

大概500行有修改密码的配置 当然,你也可以不修改密码 默认是没有密码的

修改配置后重启 redis

sudo /etc/init.d/redis-server restart

在node中使用redis

var redis = require('redis');
var client = redis.createClient(6379, '127.0.0.1');
client.auth(123456);  // 如果没有设置密码 是不需要这一步的
client.on('connect', function () {
    // set 语法
    client.set('name', 'long', function (err, data) {
        console.log(data)
    })
   // get 语法
    client.get('name', function (err, data) {
        console.log(data)
    })

    client.lpush('class',1,function (err,data) {
        console.log(data)
    })

    client.lrange('class',0,-1,function (err,data) {
        console.log(data)
    })
})

可以用更优雅的结构进行实现:

在这里插入图片描述app.js文件作为一个全局的配置文件,配置以下的文件:

const redisClient = require('./db/redis')
const sessionStore = new redisStore({
  client:redisClient
})

根据业务的需求再按需使用

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值