欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用NodeJS?5分鐘?連接?Redis?讀寫操作的詳細(xì)過程

 更新時(shí)間:2022年07月15日 17:42:19   作者:k21vin  
這篇文章主要介紹了NodeJS?5分鐘?連接?Redis?讀寫操作,本文給大家介紹的非常詳細(xì),對大家學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

本文簡介

本文主要講解使用 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;6379Redis 默認(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í),使用以下命令安裝的最新版 Redis4.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 操作。

你也可以將上面的代碼改成 asyncawait 語法。

讀取數(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 中判斷一個(gè)文件是否存在

    Node.js 中判斷一個(gè)文件是否存在

    這篇文章主要記錄一些 Node.js 應(yīng)用中的小知識(shí)點(diǎn),如果你 Google/Baidu “Node.js 如何判斷文件是否存在” 發(fā)現(xiàn)給出的很多答案還是使用的 fs.exists,這里不推薦使用 fs.exists 你可以選擇 fs.stat 或 fs.access。
    2020-08-08
  • node.js中process進(jìn)程的概念和child_process子進(jìn)程模塊的使用方法示例

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

    這篇文章主要介紹了node.js中process進(jìn)程的概念和child_process子進(jìn)程模塊的使用方法,結(jié)合實(shí)例形式分析了node.js中process進(jìn)程和child_process子進(jìn)程模塊相關(guān)概念、原理、使用方法及操作注意事項(xiàng),需要的朋友可以參考下
    2020-02-02
  • Node.js應(yīng)用設(shè)置安全的沙箱環(huán)境

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

    這篇文章主要介紹了Node.js應(yīng)用設(shè)置安全的沙箱環(huán)境的方法以及注意事項(xiàng),對此有需要的朋友可以參考學(xué)習(xí)下。
    2018-04-04
  • jwt在node中的應(yīng)用實(shí)踐(安裝配置封裝)

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

    這篇文章主要為大家介紹了jwt在node中的應(yīng)用實(shí)踐包括安裝配置封裝,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • 最新評(píng)論