iT邦幫忙

0

Redis 學習筆記(2)-Redis特點

  • 分享至 

  • xImage
  •  

Redis 學習筆記(2)-Redis特點

本文是有關 Redis 的學習筆記的一部分,相關目錄請參考 Redis 學習筆記(1)-簡介

0. 前言

在把Redis這個技術元素納入你的應用系統前,需要瞭解這個技術元素特點,從其原理上掌握這些特點有助於你更好使用這些功能。例如Redis持久化是非同步的,在較為極端情況下有可能會遺失宕機時間點上當下的資料,但是關聯式資料庫在某些設定值下也會有類似的狀況,瞭解這些狀況後,你更容易決定要不要在重要資料上使用Redis,或者你可以在AP層透過自己的程式邏輯來補足這些弱點。

接下來我們開始說明Redis 不同於一般關聯式資料庫的特點。

1. Key-Value

鍵值資料庫是一種非關聯式資料庫,使用簡單的鍵值方法存放資料。鍵值資料庫將資料存放為鍵值組集合,而其中的鍵做為唯一識別碼。鍵和值不限種類,從簡單物件到複雜的複合物件皆可。其資料結構類似下圖。
https://ithelp.ithome.com.tw/upload/images/20220610/20149259xGyyxZVxm1.png?o=2022-04-29-01.png

2. 快取

快取可以藉由減少產生內容所需的工作,大幅改善應用程式的效能和擴充性。快取最適合用於不常變動 且 產生成本較高的資料。快取會建立資料的複本,而這些資料的傳回速度會比來源快許多。其操作次序類似下圖。
https://ithelp.ithome.com.tw/upload/images/20220610/20149259WsyIPFt0eR.png?o=2022-04-29-02.png

3. 單線程

單線程模型還帶了以下好處:

  • 避免多線程上下文切換導致的性能損耗
  • 避免多線程訪問共享資源加鎖導致的性能損耗

其結構如下圖:
https://ithelp.ithome.com.tw/upload/images/20220610/20149259K1Ss5ZmV8X.png?o=2022-04-29-03.png

4. 持久化

Redis 有二個持久化機制: RDB 和 AOF。

4.1 RDB

RDB持久化方式能够在指定的时间间隔能对你的数据进行快照存储。
在默认情况下, Redis 将数据库快照保存在名字为 dump.rdb的二进制文件中。
在 Redis 运行时, RDB 程序将当前内存中的数据库快照保存到磁盘文件中, 在 Redis 重启动时, RDB 程序可以通过载入 RDB 文件来还原数据库的状态。
https://ithelp.ithome.com.tw/upload/images/20220610/20149259LsZGDHBz6h.png?o=2022-04-29-04.png

4.2 AOF

每当 Redis 执行一个改变数据集的命令时(比如 SET), 这个命令就会被追加到 AOF 文件的末尾。这样的话, 当 Redis 重新启时, 程序就可以通过重新执行 AOF 文件中的命令来达到重建数据集的目的。
https://ithelp.ithome.com.tw/upload/images/20220610/201492596B1ukozCwC.png?o=2022-04-29-05.png

5. 結論

在這一篇學習中,我們說明了Redis的幾個重要的特點。Key-Value的結構說明其使用方式和關聯式資料庫不同,快取說明其資料皆放置在記憶體中所以效能有保證,單線程則保證操作的原子性,最後持久化則說明資料不會因停機而遺失。


參考資料:


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言