搜尋
首頁後端開發php教程Redis 對比 Memcached 並在 CentOS 下進行安裝配置

了解Redis

Redis 是一個開源、支援網路、基於記憶體、鍵值對的Key-Value 資料庫,使用ANSI C 編寫,並提供多種語言的API ,它幾乎沒有上手難度,只需要幾分鐘我們就能完成安裝工作,並讓它開始與應用程式順暢協作。換句話說,只要投入一小部分時間與精力,大家就能獲得即時且效果極佳的效能表現提升,就是說它是一個非常簡單快取解決方案。它支援儲存的 Value 類型不僅限於字串,支援主從同步,資料持久化等等,大家都認為 Redis 是最受歡迎的 Key-Value 儲存資料庫,一定有人問 Memcached 呢?

Redis VS Memcached

首先我剛去DB-Engines.com 的資料庫排行中看了一下,Redis 排行第九,Key-value store第一位;Memcached 排行二十三,Key-value store第二位。這當然不能說明什麼了。

Redis 支援更多的資料類型,包括:String、Hash、List、Set;Memcached 僅支援一種 String 資料類型。
Redis 透過 Multi/Watch/Exec 等命令可以支援事務的概念,原子性的執行一批命令;Memcached 的應用模式中,除了increment/decrement這樣的原子操作命令,不存在對事務的支持。
Redis 可以以 master-slave的方式配置伺服器實現主從同步備份,同時只持兩種持久化方案;Memcached 不保證儲存的資料的有效性,也不做資料的持久化工作。當然這些也都說明不了什麼。

每種事物存在著這個世界總有他的意義。 Memcached 的內部記憶體管理機制雖然不像Redis 的那樣複雜,但卻更具實際效率,因為Memcached 在處理元資料時所消耗的記憶體資源相對較少;在橫向擴展方面也比Redis更具優勢,由於其在設計上的思路傾向以及相對較簡單的功能設定。例如,快取一段字串或 Html頁面的時候,相對來說用 Memcached 會更好。

CentOS 下 安裝 Redis

1.下載解壓縮安裝 redis ,這裡是官網下載的最新的3.2.5版本,依然透過wget下載(我喜歡這種方式)。

wget http://download.redis.io/releases/redis-3.2.5.tar.gztar xzf redis-3.2.5.tar.gz
mv redis-3.2.5 /usr/local/redis

Redis 對比 Memcached 並在 CentOS 下進行安裝配置

上面 mv redis-3.2.5 /usr/local/redis 指令是移動 Redis 安裝檔案到安裝目錄,當然這個目錄你可以自訂。

2.進入目錄,編譯安裝

cd /usr/local/redis
make
make install

安裝完成,這時候會在/usr/local/bin/目錄下看到redis-server、redis-cli等這個可執行腳本,進入看一下,如果沒有,就要去解壓縮目錄複製進去了。

cd /usr/local/bin/

Redis 對比 Memcached 並在 CentOS 下進行安裝配置

3.配置redis.conf

回到/usr/local/redis目錄,進行設定:

cd ../redis
vim redis.conf

回到/usr/local/redis目錄,進行設定:Redis 對比 Memcached 並在 CentOS 下進行安裝配置

cd /usr/local/bin/
redis-server /usr/local/redis/redis.conf
netstat -anp | grep 6379

一個bind和daemonize就行。

bind這裡配置要注意,預設是只有一個127.0.0.1,這個時候只能自己連接,其他區域網路內是連接不上的。所以,需要設定多個 IP ,這樣就可以在區域網路內進行連接了。

Redis 對比 Memcached 並在 CentOS 下進行安裝配置

daemonize是設定是否後台啟動 Redis,預設no,正常都需要以服務形式啟動 Redis,所以這裡設定為yes。

Redis 對比 Memcached 並在 CentOS 下進行安裝配置

修改完后,保存退出。

4.启动

cd /usr/local/bin/
redis-server /usr/local/redis/redis.conf
netstat -anp | grep 6379

Redis 對比 Memcached 並在 CentOS 下進行安裝配置

5.测试一下
这里用命令行模式连接上 Redis 进行一个简单的设置、获取缓存测试。

redis-cli    #连接 Redis ,默认是本机的。
keys *       #查看现在所有 
keyset name mafly    #设置一个key为`name`,value为`mafly`的缓存对象。
get name     #获取key为`name`的缓存

Redis 對比 Memcached 並在 CentOS 下進行安裝配置

6.关闭 Redis

redis-cli shutdown

Redis 對比 Memcached 並在 CentOS 下進行安裝配置

通过 netstat 可以看出来端口已经是TIME_WAIT状态了。

总结一下

经过这次安装配置 Redis 的过程,也让我更加了解了一下 Memcached ,也更明白了这两种最流行的 Key-Value 缓存服务的优劣势,当然大多数都是通过网络获取,在实际运用中怎样也在监测中。



陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
使用數據庫存儲會話的優點是什麼?使用數據庫存儲會話的優點是什麼?Apr 24, 2025 am 12:16 AM

使用數據庫存儲會話的主要優勢包括持久性、可擴展性和安全性。 1.持久性:即使服務器重啟,會話數據也能保持不變。 2.可擴展性:適用於分佈式系統,確保會話數據在多服務器間同步。 3.安全性:數據庫提供加密存儲,保護敏感信息。

您如何在PHP中實現自定義會話處理?您如何在PHP中實現自定義會話處理?Apr 24, 2025 am 12:16 AM

在PHP中實現自定義會話處理可以通過實現SessionHandlerInterface接口來完成。具體步驟包括:1)創建實現SessionHandlerInterface的類,如CustomSessionHandler;2)重寫接口中的方法(如open,close,read,write,destroy,gc)來定義會話數據的生命週期和存儲方式;3)在PHP腳本中註冊自定義會話處理器並啟動會話。這樣可以將數據存儲在MySQL、Redis等介質中,提升性能、安全性和可擴展性。

什麼是會話ID?什麼是會話ID?Apr 24, 2025 am 12:13 AM

SessionID是網絡應用程序中用來跟踪用戶會話狀態的機制。 1.它是一個隨機生成的字符串,用於在用戶與服務器之間的多次交互中保持用戶的身份信息。 2.服務器生成並通過cookie或URL參數發送給客戶端,幫助在用戶的多次請求中識別和關聯這些請求。 3.生成通常使用隨機算法保證唯一性和不可預測性。 4.在實際開發中,可以使用內存數據庫如Redis來存儲session數據,提升性能和安全性。

您如何在無狀態環境(例如API)中處理會議?您如何在無狀態環境(例如API)中處理會議?Apr 24, 2025 am 12:12 AM

在無狀態環境如API中管理會話可以通過使用JWT或cookies來實現。 1.JWT適合無狀態和可擴展性,但大數據時體積大。 2.Cookies更傳統且易實現,但需謹慎配置以確保安全性。

您如何防止與會議有關的跨站點腳本(XSS)攻擊?您如何防止與會議有關的跨站點腳本(XSS)攻擊?Apr 23, 2025 am 12:16 AM

要保護應用免受與會話相關的XSS攻擊,需採取以下措施:1.設置HttpOnly和Secure標誌保護會話cookie。 2.對所有用戶輸入進行輸出編碼。 3.實施內容安全策略(CSP)限制腳本來源。通過這些策略,可以有效防護會話相關的XSS攻擊,確保用戶數據安全。

您如何優化PHP會話性能?您如何優化PHP會話性能?Apr 23, 2025 am 12:13 AM

优化PHP会话性能的方法包括:1.延迟会话启动,2.使用数据库存储会话,3.压缩会话数据,4.管理会话生命周期,5.实现会话共享。这些策略能显著提升应用在高并发环境下的效率。

什麼是session.gc_maxlifetime配置設置?什麼是session.gc_maxlifetime配置設置?Apr 23, 2025 am 12:10 AM

theSession.gc_maxlifetimesettinginphpdeterminesthelifespanofsessiondata,setInSeconds.1)它'sconfiguredinphp.iniorviaini_set().2)abalanceisesneededeededeedeedeededto toavoidperformance andunununununexpectedLogOgouts.3)

您如何在PHP中配置會話名?您如何在PHP中配置會話名?Apr 23, 2025 am 12:08 AM

在PHP中,可以使用session_name()函數配置會話名稱。具體步驟如下:1.使用session_name()函數設置會話名稱,例如session_name("my_session")。 2.在設置會話名稱後,調用session_start()啟動會話。配置會話名稱可以避免多應用間的會話數據衝突,並增強安全性,但需注意會話名稱的唯一性、安全性、長度和設置時機。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。