{%hackmd BJrTq20hE %}
第 14 屆 iThome 鐵人賽 (2022)
Redis (Remote Dictinary Server) 是一個開放原始碼的使用ANSI C 語言撰寫、遵守BSD協定、支援網路、可以記憶體為基礎亦可持久話的紀錄檔Key-Value資料庫,並提供多種語言的API。他通常被稱為資料結構伺服器,因為值 (value) 可以是字串(String)、雜湊(Hash)、清單(List)、集合(set)和有序集合(Sorted sets)等類型。
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://aws.amazon.com/tw/redis/