本文简介
本文次要解说应用 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
是本机 IP
;6379
是 Redis
默认的端口号。
写入
写入数据应用 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 依赖
在写本文时,应用以下命令装置的最新版 Redis
是 4.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
操作。
你也能够将下面的代码改成 async
和 await
语法。
读取数据
应用 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.8 和 v4.1 的语法雷同
redisClient.quit()
举荐浏览
👍《NodeJS http 申请》
👍《NodeJS 5 分钟 连贯 MySQL 增删改查》
👍《NodeJS 操作 cookie》
点赞 + 关注 + 珍藏 = 学会了