iT邦幫忙

2022 iThome 鐵人賽

DAY 26
0
Modern Web

Node.js系列 第 26

DAY 26 Redis什麼都會又大又便宜?

  • 分享至 

  • xImage
  •  

DAY 26 Redis

{%hackmd BJrTq20hE %}

tags: 第 14 屆 iThome 鐵人賽 (2022)

什麼是Redis

Redis (Remote Dictinary Server) 是一個開放原始碼的使用ANSI C 語言撰寫、遵守BSD協定、支援網路、可以記憶體為基礎亦可持久話的紀錄檔Key-Value資料庫,並提供多種語言的API。他通常被稱為資料結構伺服器,因為值 (value) 可以是字串(String)、雜湊(Hash)、清單(List)、集合(set)和有序集合(Sorted sets)等類型。

為什麼我們會需要Redis?

Redis 是實作高可用性記憶體內快取的絕佳選項,可減少資料存取延遲、增加輸送量,以及減輕關聯式或 NoSQL 資料庫和應用程式的負載。Redis 可提供低於一毫秒的回應時間來服務頻繁要求的項目,且能夠輕鬆地針對較高的負載進行擴展,無須擴充較為昂貴的後端。資料庫查詢結果快取、持久性工作階段快取、網頁快取,以及影像、檔案和中繼資料等快取常用物件都是 Redis 快取的常見範例

簡單來說 Redis能夠整合資料庫,減少資料延遲和負載,能夠在使用類似 Celery 等需要多工處理, 或是大型的DB中提升效能。

上面為Amazon平台對於Redis的設計圖

npm install redis -S

首先 我們先進入Redis的基本設置
在createClient設定自己的port號和連接阜

var redis = require('redis');

var client = redis.createClient(6379,'127.0.0.1');

client.auth(123456);  // 如果沒有設置密碼 ,不需要這一段
client.on('connect', function () {
    client.set('hello','這是一個值');
})

現在我們嘗試取得redis中的值
使用set來設定資料庫裡的資料
再使用get來獲取資料庫的值

var redis = require('redis');

var client = redis.createClient(6379,'127.0.0.1');

client.on('connect', function () {
    // set 語法
    client.set('hello','這是一個值');
    // get 語法
    client.get('hello',function (err,v) {
        console.log("redis hello 發生錯誤",err,v);
    })
})

也可以把儲存的物件改成JSON:

var redis = require('redis');

var client = redis.createClient(6379,'127.0.0.1');
client.on('connect', function () {
    client.set('hello',{name:"jacky",age:22});

    client.get('hello',function (err,v) {
        console.log("redis hello 發生錯誤,v",err,v);
    })

結論

Redis是一個大型專案中,資料庫結構不可或缺的一部分,其提供的各項服務都有很大的價值,他基本上就是無成本的更快處理方法,快能節約資源且能夠降低延遲時間的加速裝置,支援多種程式語言使用,而且沒有成本,可以把Redis納為己用,將能夠對後端無論之後在學Broker還是Backend都有很大的幫助。

https://redis.io/

https://aws.amazon.com/tw/redis/


上一篇
DAY 25 建立MongoDB資料庫
下一篇
DAY 27 用 Koa+MongoDB實現一個部落格
系列文
Node.js30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言