乐趣区

关于前端:NodeJS-5分钟-连接-Redis-读写操作

本文简介

本文次要解说应用 NodeJS 操作 Redis,顺便会先带一带 Redis 根底用法。

在写本文时,应用 NPM 装置的 Redis 依赖包曾经到了 4.1.0 版本了。我以前用过 2.8,这两个版本在用法上也是有差异的。可能一些老我的项目还在用老版本的依赖包。所以我会把 2 个版本的用法都简略讲讲。

Redis 根底

Redis 能够说是最最最简略的数据库了。大部分数据库的读写操作都是在硬盘上的,而 Redis 是在内存上的。所以读写速度会比其余传统数据库要快。但毛病是数据不能长久化,一旦断电重启,数据就没了。当然,Redis 也是能够将数据长久化的,但我感觉这样做的老本有点高,如果要将数据长久化不如间接用传统数据库。

Redis 可能用得最多的中央就是存储 session,用来记录用户登录状态之类的操作。这类数据就算失落了也不会对用户有多大影响。

装置

要应用 Redis,首先就要装置它。windows 版下载链接放在这里:https://github.com/tporadowsk…

我下载了 .msi 格局的安装包,下载后间接双击运行,始终点“下一步”就能装置胜利。

在装置时记得勾选将 Redis 增加到全局环境。

装置胜利后,关上终端,输出一下命令

redis-cli

进入交互模式就证实装置胜利了,此时能够输出指令操作 Redis 了。

127.0.0.1 是本机 IP6379Redis 默认的端口号。

写入

写入数据应用 set 指令

set key value

key 是键名,value 是值。

我设置了一个 name,值为 zhangsan

输出完按回车键,返回 OK 证实写入胜利。

读取

读取数据应用 get

get key

key 是键名。

如果查到就返回值。

查看所有 key

如果你不分明以后存了什么 key,能够应用 keys * 来查问所有 key

keys *

如果你有多个 key,用下面的语句能够将所有 key 都列出来。

删除

删除应用 del

del key

我把刚刚创立的 name 这条数据给删掉了。

此时应用 get 或者 keys * 都差不回 name 这条数据了。

以上就是 Redis 的根底用法。

NodeJS 操作 Redis

初始化我的项目

我用默认模板初始化我的项目。

npm init -y

装置 Redis 依赖

在写本文时,应用以下命令装置的最新版 Redis4.1.0

npm install redis

如果你想用旧版语法,能够装置指定版本。

比方我之前用的是 2.8

npm install redis@2.8

连贯

装置好 Redis 后就能够用 NodeJS 来连贯了。

新建一个 js 文件。

v2.8 语法

const redis = require('redis') // 引入 redis

// 创立客户端
const redisClient = redis.createClient('6379', '127.0.0.1') // 端口,主机

// 监听错误信息
redisClient.on('error', err => {console.error(err) // 打印监听到的错误信息
})

v4.1 语法

const redis = require('redis') // 引入 redis

const redisClient = redis.createClient() // 创立客户端

// 监听错误信息
redisClient.on('err', err => {console.log('redis client error:', err)
})

// 连贯
redisClient.connect(6379, '127.0.0.1')

写入数据

写入数据应用 set 办法

v2.8

// 省略局部代码

redisClient.set('name', 'zhangsan', redis.print)

第三个参数 redis.print 是打印办法,在执行完下面的命令,控制台会打印一条信息。

比方执行胜利,会打印 Reply: OK

v4.1

const redis = require('redis') // 引入 redis

// 创立客户端
const redisClient = redis.createClient()

// 监听错误信息
redisClient.on('err', err => {console.log('redis client error:', err)
})

// 创立连贯,是个 promise
redisClient.connect(6379, '127.0.0.1')
  .then(() => {redisClient.set('name', 'zhangsan')
      .then(val => {console.log(val)
      })
  })

下面的代码意思是,应用 client.connect 连贯,胜利后再执行 set 操作。

你也能够将下面的代码改成 asyncawait 语法。

读取数据

应用 get 办法能够读取数据

v2.8

// 省略局部代码

redisClient.get('name', (err, val) => {if (err) {console.error(err)
    return
  }
  console.log(val)
})

v4.1

const redis = require('redis') // 引入 redis

// 创立客户端
const redisClient = redis.createClient()

// 创立连贯,是个 promise
redisClient.connect(6379, '127.0.0.1')
  .then(() => {redisClient.get('name')
      .then(val => {console.log(val)
      })
  })

如果查找到就返回对应的值,否则返回 null

删除

应用 del 办法删除

v2.8

// 省略局部代码

redisClient.del('name', (err, val) => {if (err) {console.error(err)
    return
  }
  console.log(val)
})

v4.1

const redis = require('redis') // 引入 redis

// 创立客户端
const redisClient = redis.createClient()

// 创立连贯,是个 promise
redisClient.connect(6379, '127.0.0.1')
  .then(() => {redisClient.del('name')
      .then(val => {console.log(val)
      })
  })

断开连接

用完就断,用 quit 办法能够断开连接。

在断开连接这件事上,v2.8v4.1 的语法雷同

redisClient.quit()

举荐浏览

👍《NodeJS http 申请》

👍《NodeJS 5 分钟 连贯 MySQL 增删改查》

👍《NodeJS 操作 cookie》

点赞 + 关注 + 珍藏 = 学会了

退出移动版