使用NodeJS?5分鐘?連接?Redis?讀寫操作的詳細(xì)過程
本文簡介
本文主要講解使用 NodeJS
操作 Redis
,順便會(huì)先帶一帶 Redis
基礎(chǔ)用法。
在寫本文時(shí),使用 NPM
安裝的 Redis
依賴包已經(jīng)到了 4.1.0
版本了。我以前用過 2.8
,這兩個(gè)版本在用法上也是有差別的??赡芤恍├享?xiàng)目還在用老版本的依賴包。所以我會(huì)把2個(gè)版本的用法都簡單講講。
Redis 基礎(chǔ)
Redis
可以說是最最最簡單的數(shù)據(jù)庫了。大部分?jǐn)?shù)據(jù)庫的讀寫操作都是在硬盤上的,而 Redis
是在內(nèi)存上的。所以讀寫速度會(huì)比其他傳統(tǒng)數(shù)據(jù)庫要快。但缺點(diǎn)是數(shù)據(jù)不能持久化,一旦斷電重啟,數(shù)據(jù)就沒了。當(dāng)然,Redis
也是可以將數(shù)據(jù)持久化的,但我覺得這樣做的成本有點(diǎn)高,如果要將數(shù)據(jù)持久化不如直接用傳統(tǒng)數(shù)據(jù)庫。
Redis
可能用得最多的地方就是存儲(chǔ) session
,用來記錄用戶登錄狀態(tài)之類的操作。這類數(shù)據(jù)就算丟失了也不會(huì)對用戶有多大影響。
安裝
要使用 Redis
,首先就要安裝它。windows版下載鏈接放在這里:https://github.com/tporadowski/redis/releases
我下載了 .msi
格式的安裝包,下載后直接雙擊運(yùn)行,一直點(diǎn) “下一步” 就能安裝成功。
在安裝時(shí)記得勾選將 Redis
添加到全局環(huán)境。
安裝成功后,打開終端,輸入一下命令
redis-cli
進(jìn)入交互模式就證明安裝成功了,此時(shí)可以輸入指令操作 Redis
了。
127.0.0.1
是本機(jī) IP
;6379
是 Redis
默認(rèn)的端口號(hào)。
寫入
寫入數(shù)據(jù)使用 set
指令
set key value
key
是鍵名,value
是值。
我設(shè)置了一個(gè) name
,值為 zhangsan
。
輸入完按回車鍵,返回 OK
證明寫入成功。
讀取
讀取數(shù)據(jù)使用 get
。
get key
key
是鍵名。
如果查到就返回值。
查看所有key
如果你不清楚當(dāng)前存了什么 key
,可以使用 keys *
來查詢所有 key
keys *
如果你有多個(gè) key
,用上面的語句可以將所有 key
都列出來。
刪除
刪除使用 del
。
del key
我把剛剛創(chuàng)建的 name
這條數(shù)據(jù)給刪掉了。
此時(shí)使用 get
或者 keys *
都差不回 name
這條數(shù)據(jù)了。
以上就是 Redis
的基礎(chǔ)用法。
NodeJS 操作 Redis
初始化項(xiàng)目
我用默認(rèn)模板初始化項(xiàng)目。
npm init -y
安裝 Redis 依賴
在寫本文時(shí),使用以下命令安裝的最新版 Redis
是 4.1.0
npm install redis
如果你想用舊版語法,可以安裝指定版本。
比如我之前用的是 2.8
版
npm install redis@2.8
連接
安裝好 Redis
后就可以用 NodeJS
來連接了。
新建一個(gè) js
文件。
v2.8語法
const redis = require('redis') // 引入 redis // 創(chuàng)建客戶端 const redisClient = redis.createClient('6379', '127.0.0.1') // 端口,主機(jī) // 監(jiān)聽錯(cuò)誤信息 redisClient.on('error', err => { console.error(err) // 打印監(jiān)聽到的錯(cuò)誤信息 })
v4.1 語法
const redis = require('redis') // 引入 redis const redisClient = redis.createClient() // 創(chuàng)建客戶端 // 監(jiān)聽錯(cuò)誤信息 redisClient.on('err', err => { console.log('redis client error: ', err) }) // 連接 redisClient.connect(6379, '127.0.0.1')
寫入數(shù)據(jù)
寫入數(shù)據(jù)使用 set
方法
v2.8
// 省略部分代碼 redisClient.set('name', 'zhangsan', redis.print)
第三個(gè)參數(shù) redis.print
是打印方法,在執(zhí)行完上面的命令,控制臺(tái)會(huì)打印一條信息。
比如執(zhí)行成功,會(huì)打印 Reply: OK
v4.1
const redis = require('redis') // 引入 redis // 創(chuàng)建客戶端 const redisClient = redis.createClient() // 監(jiān)聽錯(cuò)誤信息 redisClient.on('err', err => { console.log('redis client error: ', err) }) // 創(chuàng)建連接,是個(gè) promise redisClient.connect(6379, '127.0.0.1') .then(() => { redisClient.set('name', 'zhangsan') .then(val => { console.log(val) }) })
上面的代碼意思是,使用 client.connect
連接,成功后再執(zhí)行 set
操作。
你也可以將上面的代碼改成 async
和 await
語法。
讀取數(shù)據(jù)
使用 get
方法可以讀取數(shù)據(jù)
v2.8
// 省略部分代碼 redisClient.get('name', (err, val) => { if (err) { console.error(err) return } console.log(val) })
v4.1
const redis = require('redis') // 引入 redis // 創(chuàng)建客戶端 const redisClient = redis.createClient() // 創(chuàng)建連接,是個(gè) promise redisClient.connect(6379, '127.0.0.1') .then(() => { redisClient.get('name') .then(val => { console.log(val) }) })
如果查找到就返回對應(yīng)的值,否則返回 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 // 創(chuàng)建客戶端 const redisClient = redis.createClient() // 創(chuàng)建連接,是個(gè) promise redisClient.connect(6379, '127.0.0.1') .then(() => { redisClient.del('name') .then(val => { console.log(val) }) })
斷開連接
用完就斷,用 quit
方法可以斷開連接。
在斷開連接這件事上,v2.8 和 v4.1 的語法相同
redisClient.quit()
到此這篇關(guān)于NodeJS 5分鐘 連接 Redis 讀寫操作的文章就介紹到這了,更多相關(guān)NodeJS連接 Redis 讀寫操作內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
又拍云 Node.js 實(shí)現(xiàn)文件上傳、刪除功能
這篇文章主要介紹了又拍云 Node.js 實(shí)現(xiàn)文件上傳、刪除功能,代碼簡單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-10-10Node.js中的文件系統(tǒng)(file system)模塊詳解
Node.js文件系統(tǒng)模塊提供了豐富的方法,用于讀取、寫入、操作文件和目錄,文件系統(tǒng)模塊是Node.js強(qiáng)大而靈活的一部分,為文件操作提供了方便的API,本文給大家介紹Node.js中的文件系統(tǒng)(file system)模塊,感興趣的朋友一起看看吧2023-11-11Node.js中讀取TXT文件內(nèi)容fs.readFile()用法
在本篇文章中我們給大家分享一下Node.js中讀取TXT文件內(nèi)容以及fs.readFile()的用法,需要的朋友們可以參考下。2018-10-10手把手教你使用TypeScript開發(fā)Node.js應(yīng)用
為了減少代碼編寫過程中出現(xiàn)的錯(cuò)誤,以及更好的維護(hù)你的項(xiàng)目,本文將手把手教你配置一個(gè)簡單的開發(fā)環(huán)境來編寫Node.js的應(yīng)用程序,感興趣的小伙伴們可以參考一下2019-05-05

node.js中process進(jìn)程的概念和child_process子進(jìn)程模塊的使用方法示例

Node.js應(yīng)用設(shè)置安全的沙箱環(huán)境

jwt在node中的應(yīng)用實(shí)踐(安裝配置封裝)