iT邦幫忙

2021 iThome 鐵人賽

DAY 2
0
Software Development

Redis還在學系列 第 2

Day2 Redis基礎介紹

特性

  • 使用記憶體進行操作
    • 所有資料都透過Key-Value的方式存放在記憶體,在找尋所需資料透過Hashmap的方式取得,所以速度非常快。
  • 簡單的資料結構
    • strings
    • lists
    • maps
    • sets
    • sorted
    • sets
    • HyperLogLogs
    • bitmaps
    • streams
    • spatial indexes
  • 透過單執行緒進行操作
    • 大多數的應用情境都是單執行緒的方式即可完成,部分特殊需求會fork新的Process進行,但單執行緒可以減少CPU的Context Switch 提升處理效率也可以避免資源競爭的可能。
    • 在Redis 4.0 版本開始支援多執行緒,主要應用在集群的I/O、寫入AOF或是連線管理等應用。
  • Socket multiplexing
    • 透過單執行緒同時監控多個Socket連線處理需求I/O。
    • 在Redis 6.0 開始使用多執行緒監控多個Socket連線處理需求,在進行操作時還是透過單執行。

RESP (Redis Serialization Protocol)

  • Redis 在使用端與伺服器端通訊是透過RESP協定通過TCP方式進行。
  • binary safe,字串內容轉換成二進位格式進行傳輸不會有特殊格式。
  • 實作簡單
  • 解析效率快
  • 可讀性佳
  • 使用上會搭配一些符號對應所傳輸的資料型態,結尾統一加上換行符號\r\n
    • 字串
    +OK/r/n
    
    • 錯誤
    #-Error message
    -ERR unknow command 'get123'
    
    • 整數
    # (integer 1)
    :1
    
    # (integer 3)
    :3
    
    • 多行字串
    get site
    $-1
    
    set site 'helloworld'
    +OK
    
    get site
    $10
    helloworld
    
    • 陣列
    LPUSH todo item1 item2 item3
    :3
    
    LRANGE todo 0 -1
    *3
    $5
    item3
    $5
    item2
    $5
    item1
    

上一篇
Day1 Redis環境準備
下一篇
Day3 Redis伺服器環境設定
系列文
Redis還在學30

尚未有邦友留言

立即登入留言