iT邦幫忙

2023 iThome 鐵人賽

DAY 15
0
Software Development

從餐飲業轉職成小白工程師的所見所學系列 第 15

Redis? 適合使用的地方?? Day15

  • 分享至 

  • xImage
  •  

在上一篇文章有提到 Redis ,今天我們來看看它是什麼!

Redis(Remote Dictionary Server)是一個高性能、開源的鍵值對(Key-Value)數據存儲和緩存系統。它以內存中的數據結構庫的形式提供,可以用於多種用途,並被廣泛應用在Web應用程式、快取、消息佇列、會話管理和實時數據分析等方面。

以下範例是在 Rails 中使用 Redis

先確保在 Gem 安裝 Redis

gem 'redis'

我們可以在 controller 透過 Redis 儲存、檢索數據

class RedisExampleController < ApplicationController
  def set_data
    redis = Redis.new
    redis.set('example_key', 'Hello, Redis!')
    redis.quit
    render plain: 'Data stored in Redis.'
  end

  def get_data
    redis = Redis.new
    data = redis.get('example_key')
    redis.quit
    if data
      render plain: "Data from Redis: #{data}"
    else
      render plain: 'Data not found in Redis.'
    end
  end
end

最後我們可以在 routes 設定路徑後調用剛剛設定好的操作

Rails.application.routes.draw do
  get 'redis_example/set_data'
  get 'redis_example/get_data'
end

特點和優勢:

  • 高性能: Redis被設計成非常快速的數據存儲系統,因為它將數據存儲在內存中,並使用高效的數據結構操作。

  • 多種數據結構支持: Redis支持多種數據結構,包括字符串、列表、集合、散列、有序集合等,這使得它適用於各種不同的應用。

  • 持久性選項: Redis支持不同級別的持久性,可以將數據保存到磁盤上,以防止數據丟失。

  • 發佈/訂閱機制: Redis具有內置的發佈/訂閱(Pub/Sub)機制,使得實時通訊和事件驅動的應用變得容易實現。

  • 分佈式支持: Redis可以作為分佈式緩存使用,並支持主從複製和叢集模式,以實現高可用性和水平擴展性。

適合使用的地方:

  • 快取層: Redis常用於快取常用數據,以減輕後端數據庫的負載,提高Web應用程式的性能。它具有低延遲,可用於緩存常用的查詢結果、頁面片段和API請求等。

  • 會話管理: Redis可以用於存儲和管理Web應用程式的用戶會話數據,以實現無狀態的應用伺服器集群。

  • 實時分析: Redis的有序集合和散列結構使其適合用於實時數據分析,例如統計信息、計數和排行榜等。

  • 消息佇列: Redis的發佈/訂閱機制和佇列數據結構使其成為一個可靠的消息佇列伺服器,用於處理非同步任務和事件。

  • 分佈式緩存: Redis可用於分佈式緩存,以減輕後端伺服器的負載,同時確保多個伺服器之間共享的數據保持一致。

總之,Redis是一個多功能的高性能鍵值對數據存儲系統,適合用於需要快速、可擴展和可靠的數據存儲和緩存的應用。它在許多不同的情境下都有用武之地,並且是一個流行的工具,用於處理各種數據管理需求。


上一篇
關聯式資料庫(RDBMS)、非關聯式資料庫的差異(NoSQL)? Day14
下一篇
什麼是資料庫正規化? Day16
系列文
從餐飲業轉職成小白工程師的所見所學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言