Redis元件介紹(一)

ikestu小猪發表於2024-08-28

寫在前面

今天我們來學習一下 Redis 。Redis 是一個高效能的開源記憶體資料儲存系統,支援多種資料結構,如字串、列表、集合、有序集合和雜湊表。

NoSQL 概述

隨著大資料的興起,資料量的暴增,資料型別的豐富,傳統的關聯式資料庫在應付動態網站,特別是超大規模和高併發的純動態網站時已經顯得力不從心,暴露了很多難以克服的問題。例如:

  • 商城網站中對商品資料頻繁查詢
  • 對熱搜商品的排行統計
  • 訂單超時問題
  • 微信朋友圈(音訊,影片)儲存等

傳統的關係型資料庫雖然可以實現相應功能,但在效能上並不理想。NoSQL 技術的出現解決了這些問題,它展示了世界上不僅僅存在 SQL 的可能性。

Redis 是一個高效能的開源記憶體資料儲存系統,支援多種資料結構,如字串、列表、集合、有序集合和雜湊表。它不僅用作資料庫,也常用於快取和訊息中介軟體。Redis 提供了豐富的功能,包括持久化資料、事務處理、釋出/訂閱機制以及高可用性支援。由於其單執行緒設計,Redis 在處理高併發請求時表現出色。

NoSQL 的四大分類

鍵值儲存資料庫

  • Tokyo Cabinet/Tyrant
  • Redis: 基於記憶體的資料儲存,執行在軟體 → 磁碟 → 記憶體中
  • SSDB: 基於磁碟的,直接與磁碟互動 → IO
  • Voldemort
  • Oracle BDB

列儲存資料庫

  • HBase
  • Cassandra
  • ClickHouse

文件型資料庫

  • MongoDB
  • CouchDB
  • SequoiaDB: 國內的文件型資料庫,已開源

圖形資料庫

  • Neo4J
  • InfoGrid
  • Infinite Graph
  • OSS

NoSQL 的應用場景

  • 資料模型比較簡單
  • 需要靈活性更強的 IT 系統
  • 對資料庫效能要求較高
  • 不需要高度的資料一致性(NoSQL 資料庫對事務的支援較差)

什麼是 Redis

Redis 是一個開源的記憶體型資料儲存,遵循 BSD 許可證。它被廣泛用於資料庫、快取和訊息中介軟體。總結來說,Redis 是一個記憶體型的資料庫。

Redis 特點

  • 高效能的 Key/Value 記憶體型資料庫
  • 支援豐富的資料型別:string, list, set, sorted set, hash
  • 支援持久化:將資料儲存到磁碟
  • 單執行緒、單程序:執行緒安全性較高

下載與安裝

  1. 準備環境

    • VMware 12.x+
    • CentOS 7.x+
  2. 下載 Redis 原始碼包

    • Redis 官方下載連結
  3. 將下載的 Redis 原始碼包上傳到 Linux 中

  4. 解壓縮檔案

    tar -zxvf redis-7.0.10.tar.gz
    
  5. 安裝 GCC

    yum install -y gcc
    
  6. 進入解壓縮目錄,執行編譯命令

    yum install -y tcl
    make MALLOC=libc
    
  7. 編譯完成後,安裝 Redis

    make install PREFIX=/usr/local/soft/redis
    
  8. 啟動 Redis 服務

    ./usr/local/soft/redis/bin/redis-server
    

配置環境變數

/etc/profile 檔案中新增:

export JAVA_HOME=/usr/local/soft/jdk1.8.0_171
export REDIS_HOME=/usr/local/soft/redis
export PATH=.:$PATH:$JAVA_HOME/bin:$REDIS_HOME/bin

基本使用

  • 檢視 Redis 程序

    ps -aux | grep redis
    
  • 進行客戶端連線操作

    ./redis-cli -h localhost -p 6379
    

    如果在同一臺機器上,可以省略主機和埠:

    ./redis-cli
    

Redis 中的庫

Redis 預設存在 16 個庫,編號從 0 到 15。可以使用 select 命令選擇一個庫。

  • 清空當前庫

    FLUSHDB
    
  • 清空全部庫

    FLUSHALL
    

Redis 客戶端顯示中文

./redis-cli -p 7000 --raw

操作 Key 相關指令

  • 刪除 Key

    DEL key [key ...]
    
  • 檢查 Key 是否存在

    EXISTS key [key ...]
    
  • 設定 Key 的過期時間(秒)

    EXPIRE key seconds
    
  • 查詢所有符合給定模式的 Key

    KEYS pattern
    
  • 將 Key 移動到指定資料庫

    MOVE key db
    
  • 設定 Key 的過期時間(毫秒)

    PEXPIRE key milliseconds
    
  • 設定 Key 的過期時間戳(毫秒)

    PEXPIREAT key milliseconds-timestamp
    
  • 檢視 Key 的剩餘生存時間(秒)

    TTL key
    
  • 檢視 Key 的剩餘生存時間(毫秒)

    PTTL key
    
  • 隨機返回一個 Key

    RANDOMKEY
    
  • 重新命名 Key

    RENAME key newkey
    
  • 檢視 Key 的型別

    TYPE key
    

相關文章