目錄
建置 Redis
安裝
系統參數
redis.conf
daemonize
pidfile
port
loglevel
logfile
dir
安全
Unix sockets
requirepass
rename-command
快照
開機時啟動
什么是Linux系统
首頁 資料庫 Redis 如何在CentOS 7上安裝Redis伺服器

如何在CentOS 7上安裝Redis伺服器

May 31, 2023 am 08:25 AM
linux redis 伺服器

Redis是使用 ANSI C 編寫的開源的多平台資料儲存軟體,Redis 可以支援 Lua, C, Java, Python, Perl, PHP 和其他很多語言。

建置 Redis

redis 目前沒有官方 RPM 安裝包,我們需要從原始碼編譯,而為了要編譯就需要安裝 Make 和 GCC。

如果沒有安裝過 GCC 和 Make,那就使用 yum 安裝。

yum install gcc make
登入後複製

從官網下載 tar 壓縮包。

curl http://download.redis.io/releases/redis-3.0.4.tar.gz -o redis-3.0.4.tar.gz
登入後複製

解壓縮。

tar zxvf redis-3.0.4.tar.gz
登入後複製

進入解壓縮後的目錄。

cd redis-3.0.4
登入後複製

使用Make 編譯原始檔。

make
登入後複製

安裝

進入原始檔案的目錄。

cd src
登入後複製

複製 Redis 的伺服器和客戶端到 /usr/local/bin。

cp redis-server redis-cli /usr/local/bin
登入後複製

最好也把 sentinel,benchmark 和 check 複製過去。

cp redis-sentinel redis-benchmark redis-check-aof redis-check-dump /usr/local/bin
登入後複製

建立redis 設定資料夾。

mkdir /etc/redis
登入後複製

在/var/lib/redis 下創建有效的保存資料的目錄

mkdir -p /var/lib/redis/6379
登入後複製
系統參數

為了讓 redis 正常工作需要配置一些核心參數。

配置 vm.overcommit_memory 為1,這可以避免資料被截斷,詳情請見此。

sysctl -w vm.overcommit_memory=1
登入後複製

修改 backlog 連線數的最大值超過 redis.conf 中的 tcp-backlog 值,即預設值511。更多有關基於 sysctl 的 IP 網路隧道的資訊可以在 kernel.org 上找到。

sysctl -w net.core.somaxconn=512
登入後複製

取消對透明巨頁記憶體(transparent huge pages)的支持,因為這會造成 redis 使用過程產生延遲和記憶體存取問題。

echo never > /sys/kernel/mm/transparent_hugepage/enabled
登入後複製
登入後複製

redis.conf

redis.conf 是 redis 的設定文件,然而你會看到這個文件的名字是 6379.conf ,而這個數字就是 redis 監聽的網路埠。若要執行多個 redis 實例,建議使用下列命名方式。

複製範例的 redis.conf 到 /etc/redis/6379.conf。

cp redis.conf /etc/redis/6379.conf
登入後複製

現在編輯這個檔案並且設定參數。

vi /etc/redis/6379.conf
登入後複製
daemonize

設定 daemonize 為 no,systemd 需要它運作在前台,否則 redis 會突然掛掉。

daemonize no
登入後複製
pidfile

設定 pidfile 為 /var/run/redis_6379.pid。

pidfile /var/run/redis_6379.pid
登入後複製
port

如果不準備用預設端口,可以修改。

port 6379
登入後複製
loglevel

設定日誌等級。

loglevel notice
登入後複製
logfile

修改日誌檔案路徑。

logfile /var/log/redis_6379.log
登入後複製
dir

設定目錄為 /var/lib/redis/6379

dir /var/lib/redis/6379
登入後複製

安全

以下有幾個可以提高安全性的操作。

Unix sockets

由於客戶端程式和伺服器端程式通常在同一台機器上執行,因此不必監聽網路 socket。如果這和你的使用情況類似,你就可以使用 unix socket 替代網路 socket,為此你需要設定 port 為0,然後設定下面的選項來啟用 unix socket。

設定 unix socket 的套接字檔。

 unixsocket /tmp/redis.sock
登入後複製

限制 socket 檔案的權限。

unixsocketperm 700
登入後複製

現在為了讓 redis-cli 可以訪問,應該使用 -s 參數指向該 socket 檔案。

redis-cli -s /tmp/redis.sock
登入後複製
requirepass

你可能需要遠端訪問,如果是,那麼你應該設定密碼,這樣子每次操作之前要求輸入密碼。

requirepass "bTFBx1NYYWRMTUEyNHhsCg"
登入後複製
rename-command

想像如下指令的輸出。是的,這會輸出伺服器的配置,所以你應該在任何可能的情況下拒絕這種存取。

CONFIG GET *
登入後複製

您可以使用「rename-command」指令來限製或禁止該條或其他指令的使用。你必須提供一個命令名和替代的名字。為了更安全地禁止某個命令,應將其替代名稱設為空字串,這樣任何人都無法猜測命令的名稱。

rename-command FLUSHDB "FLUSHDB_MY_SALT_G0ES_HERE09u09u"rename-command FLUSHALL ""rename-command CONFIG "CONFIG_MY_S4LT_GO3S_HERE09u09u"
登入後複製

如何在CentOS 7上安装Redis服务器

使用密碼透過unix socket 訪問,和修改命令

快照

預設情況下,redis會週期性的將資料集轉儲到我們設定的目錄下的 dump.rdb 檔案。你可以使用 save 指令配置轉儲的頻率,它的第一個參數是以秒為單位的時間幀,第二個參數是在資料檔案上進行修改的數量。

每隔15分鐘並且最少修改過一次鍵。

save 900 1
登入後複製

每隔5分鐘並且最少修改過10次鍵。

save 300 10
登入後複製

每隔1分鐘並且最少修改過10000次鍵。

save 60 10000
登入後複製

檔案 /var/lib/redis/6379/dump.rdb 包含了從上次儲存以來記憶體中資料集的轉儲資料。因為它先創建臨時文件然後替換之前的轉儲文件,這裡不存在資料破壞的問題,你不用擔心,可以直接複製這個文件。

開機時啟動

你可以使用 systemd 將 redis 新增到系統開機啟動清單。

複製範例的 init_script 檔案到 /etc/init.d,注意腳本名稱所代表的連接埠號碼。

cp utils/redis_init_script /etc/init.d/redis_6379
登入後複製

現在我們要使用 systemd,所以在 /etc/systems/system 下方建立一個單位檔案名字為 redis_6379.service。

vi /etc/systemd/system/redis_6379.service
登入後複製

填寫下面的內容,詳情可見 systemd.service。

[Unit]Description=Redis on port 6379[Service]Type=forkingExecStart=/etc/init.d/redis_6379 startExecStop=/etc/init.d/redis_6379 stop[Install]WantedBy=multi-user.target
登入後複製

现在添加我之前在 /etc/sysctl.conf 里面修改过的内存过量使用和 backlog 最大值的选项。

vm.overcommit_memory = 1net.core.somaxconn=512
登入後複製

对于透明巨页内存支持,并没有直接 sysctl 命令可以控制,所以需要将下面的命令放到 /etc/rc.local 的结尾。

echo never > /sys/kernel/mm/transparent_hugepage/enabled
登入後複製
登入後複製

这样就可以启动了,通过设置这些选项你就可以部署 redis 服务到很多简单的场景,然而在 redis.conf 还有很多为复杂环境准备的 redis 选项。在一些情况下,你可以使用 replication 和 Sentinel 来提高可用性,或者将数据分散在多个服务器上,创建服务器集群。

什么是Linux系统

Linux是一种免费使用和自由传播的类UNIX操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统,使用Linux能运行主要的Unix工具软件、应用程序和网络协议。

以上是如何在CentOS 7上安裝Redis伺服器的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱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

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Linux體系結構:揭示5個基本組件 Linux體系結構:揭示5個基本組件 Apr 20, 2025 am 12:04 AM

Linux系統的五個基本組件是:1.內核,2.系統庫,3.系統實用程序,4.圖形用戶界面,5.應用程序。內核管理硬件資源,系統庫提供預編譯函數,系統實用程序用於系統管理,GUI提供可視化交互,應用程序利用這些組件實現功能。

git怎麼查看倉庫地址 git怎麼查看倉庫地址 Apr 17, 2025 pm 01:54 PM

要查看 Git 倉庫地址,請執行以下步驟:1. 打開命令行並導航到倉庫目錄;2. 運行 "git remote -v" 命令;3. 查看輸出中的倉庫名稱及其相應的地址。

notepad怎麼運行java代碼 notepad怎麼運行java代碼 Apr 16, 2025 pm 07:39 PM

雖然 Notepad 無法直接運行 Java 代碼,但可以通過借助其他工具實現:使用命令行編譯器 (javac) 編譯代碼,生成字節碼文件 (filename.class)。使用 Java 解釋器 (java) 解釋字節碼,執行代碼並輸出結果。

sublime寫好代碼後如何運行 sublime寫好代碼後如何運行 Apr 16, 2025 am 08:51 AM

在 Sublime 中運行代碼的方法有六種:通過熱鍵、菜單、構建系統、命令行、設置默認構建系統和自定義構建命令,並可通過右鍵單擊項目/文件運行單個文件/項目,構建系統可用性取決於 Sublime Text 的安裝情況。

laravel安裝代碼 laravel安裝代碼 Apr 18, 2025 pm 12:30 PM

要安裝 Laravel,需依序進行以下步驟:安裝 Composer(適用於 macOS/Linux 和 Windows)安裝 Laravel 安裝器創建新項目啟動服務訪問應用程序(網址:http://127.0.0.1:8000)設置數據庫連接(如果需要)

git軟件安裝 git軟件安裝 Apr 17, 2025 am 11:57 AM

安裝 Git 軟件包括以下步驟:下載安裝包運行安裝包驗證安裝配置 Git安裝 Git Bash(僅限 Windows)

如何利用Redis緩存方案高效實現產品排行榜列表的需求? 如何利用Redis緩存方案高效實現產品排行榜列表的需求? Apr 19, 2025 pm 11:36 PM

Redis緩存方案如何實現產品排行榜列表的需求?在開發過程中,我們常常需要處理排行榜的需求,例如展示一個�...

laravel8 的優化點 laravel8 的優化點 Apr 18, 2025 pm 12:24 PM

Laravel 8 針對性能優化提供了以下選項:緩存配置:使用 Redis 緩存驅動、緩存門面、緩存視圖和頁面片段。數據庫優化:建立索引、使用查詢範圍、使用 Eloquent 關係。 JavaScript 和 CSS 優化:使用版本控制、合併和縮小資產、使用 CDN。代碼優化:使用 Composer 安裝包、使用 Laravel 助手函數、遵循 PSR 標準。監控和分析:使用 Laravel Scout、使用 Telescope、監控應用程序指標。

See all articles