002 CentOS 7.9 redis-7.2.5安裝及配置

https://github.com/redis/redis

https://redis.io/insight/#insight-form

安裝及配置

在CentOS 7.9上安裝和配置Redis 7.2.5版本,可以遵循以下詳細步驟:

一、準備工作

確保安裝包已準備好:
確認您已經下載了redis-7.2.5.tar.gz安裝包,并放置在可訪問的路徑。
安裝編譯依賴:
安裝GCC和其他必要的編譯工具。

sudo yum install -y gcc make

二、安裝Redis

解壓安裝包:
將安裝包解壓到您希望安裝的目錄中,例如/usr/tools。

tar -xzvf redis-7.2.5.tar.gz  
mv redis-7.2.5 /usr/tools/redis

編譯和安裝:

進入Redis目錄并編譯安裝。

cd /usr/local/redis  
make  
make install PREFIX=/usr/local/redis

三、配置Redis

復制并修改配置文件:
將配置文件復制到Redis安裝目錄下的etc文件夾,并進行必要的修改。

mkdir /usr/tools/redis/etc  
cp redis.conf /usr/tools/redis/etc/

編輯redis.conf文件,設置以下參數:
daemonize yes:使Redis在后臺運行。
bind 0.0.0.0或指定IP:允許任何IP連接(生產環境中應限制IP)。
protected-mode no:關閉保護模式,允許遠程連接。
requirepass yourpassword:設置密碼。
設置環境變量:
編輯~/.bash_profile或~/.bashrc文件,添加Redis的bin目錄到PATH環境變量。

export PATH=$PATH:/usr/local/redis/bin

然后執行source ~/.bash_profile或source ~/.bashrc使更改生效。

四、啟動Redis并設置用戶名和密碼

啟動Redis:
使用修改后的配置文件啟動Redis。

/usr/tools/redis/bin/redis-server /usr/tools/redis/etc/redis.conf

設置用戶名和密碼:
Redis本身不直接支持用戶名,而是通過密碼進行身份驗證。
密碼已在配置文件中通過requirepass指令設置。
連接Redis:
使用redis-cli命令行工具連接Redis,并使用AUTH命令和密碼進行身份驗證。

/usr/tools/redis/bin/redis-cli
AUTH yourpassword

五、關于root用戶和密碼

在Linux系統中,root是超級用戶,擁有對系統的完全控制權。Redis的安裝和配置通常需要root權限或使用sudo命令。
Redis本身不使用root用戶和密碼進行身份驗證,而是依賴于其自己的密碼機制(通過requirepass在配置文件中設置)。
強烈建議不要以root用戶運行Redis服務,而是應該為其創建一個專用的低權限用戶。
注意事項:
確保防火墻設置允許外部訪問Redis端口(默認為6379),如果需要遠程訪問的話。
定期備份Redis數據和配置文件以防數據丟失。
監控Redis的性能和安全狀況。

make

在CentOS 7.9或其他基于RPM的Linux發行版中,使用yum命令安裝軟件包時,你可以指定一個或多個軟件包名稱來安裝。現在,讓我們來看看這兩個命令之間的區別:

sudo yum install -y gcc automake autoconf libtool make

這個命令會安裝以下五個軟件包:

gcc: GNU編譯器集合,用于編譯C、C++、Fortran等語言的程序。
automake: 一個用于自動生成Makefile.in文件的工具,通常與autoconf一起使用,以簡化構建系統的創建。
autoconf: 一個用于創建可移植的shell腳本的工具,這些腳本可以配置和編譯軟件包。
libtool: 一個用于管理庫文件的通用庫支持腳本,它簡化了庫的創建和使用。
make: GNU make工具,用于自動化編譯和安裝程序。
這個命令涵蓋了編譯和安裝軟件所需的一套完整的開發工具鏈。

sudo yum install -y gcc make

這個命令只會安裝以下兩個軟件包:

gcc: 同上,GNU編譯器集合。
make: 同上,GNU make工具。
這個命令僅安裝了編譯程序所需的基本工具:編譯器和構建工具。它沒有安裝automake、autoconf和libtool,這些工具通常在開發更復雜的軟件項目或需要自動生成構建系統時會用到。

區別總結:

第一個命令提供了更完整的開發工具鏈,包括編譯器、構建工具和自動化構建腳本的生成工具。
第二個命令僅提供了基本的編譯和構建工具。
選擇哪個命令取決于你的需求。如果你只是需要簡單地編譯一些程序,那么第二個命令可能就足夠了。但是,如果你打算開發更復雜的軟件項目,或者需要自動生成構建系統,那么第一個命令提供的工具集將更為有用。

警告

/usr/tools/redis/bin/redis-server /usr/tools/redis/etc/redis.conf
1534:C 26 May 2024 16:28:43.874 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add ‘vm.overcommit_memory = 1’ to /etc/sysctl.conf and then reboot or run the command ‘sysctl vm.overcommit_memory=1’ for this to take effect.


該警告信息是關于Linux系統中的內存過度分配(overcommit)設置。簡單來說,內存過度分配是操作系統允許應用程序請求比實際物理內存加交換空間還要多的內存的一種策略。當應用程序請求內存時,操作系統會先答應這些請求,但只有在真正需要時才分配實際的物理內存頁面。在你運行Redis服務器時,系統發出警告,建議你啟用內存過度分配。如果不啟用,可能會在內存低的情況下導致后臺保存或復制失敗,甚至在沒有內存壓力的情況下也可能導致問題(如jemalloc庫的相關問題所述)。為了解決這個問題,你可以按照警告中的建議操作:臨時解決方案:在終端中運行以下命令以立即啟用內存過度分配,但請注意這只會臨時改變設置,重啟后設置將失效。
bash
sysctl vm.overcommit_memory=1
永久解決方案:編輯/etc/sysctl.conf文件,并在文件的末尾添加以下行:
vm.overcommit_memory = 1
保存文件后,為了讓更改生效,你可以執行sysctl -p命令來重新加載sysctl配置,或者重啟系統。
請注意,更改系統設置可能會影響系統的穩定性和性能,因此在生產環境中進行此類更改之前,請確保你了解這些更改的含義,并考慮進行充分的測試。此外,如果你的系統內存充足,并且你確信不會出現內存不足的情況,這個警告可能不那么重要。但是,由于Redis是一個內存數據庫,對內存的管理非常關鍵,因此建議按照警告中的指導進行操作,以確保Redis的穩定運行。

配置文件區別

在Linux和Unix系統中,~/.bash_profile、~/.bashrc和/etc/profile是用于配置用戶環境的文件,但它們在使用和加載時機上有所區別。~/.bash_profile:
當用戶登錄時,bash shell會首先讀取~/.bash_profile文件。
它主要用于設置環境變量、運行命令或腳本,在用戶登錄時進行一次性的初始化設置。
通常,~/.bash_profile會在結束時調用~/.bashrc,以確保在用戶登錄時也執行~/.bashrc中的設置。
這個文件是針對每個用戶的,位于用戶的主目錄下。
~/.bashrc:
當用戶打開一個新的shell(非登錄shell),或者在一個已經登錄的shell中開啟一個新的bash實例時,~/.bashrc會被讀取。
它包含用戶每次打開新的bash shell時都需要運行的命令。
通常用于設置別名、函數、環境變量等,這些設置對于非登錄shell也是必要的。
這個文件也是針對每個用戶的,位于用戶的主目錄下。
/etc/profile:
這是一個全局配置文件,對所有用戶都有效。
當用戶登錄時,系統會首先讀取/etc/profile文件,然后再讀取用戶的~/.bash_profile或~/.profile。
通常用于設置所有用戶都需要的環境變量、系統級配置等。
/etc/profile還可以包含對其他全局或特定用戶配置文件的引用,如/etc/profile.d/目錄下的腳本。
簡而言之,~/.bash_profile和~/.bashrc是針對每個用戶的個性化設置,而/etc/profile是系統級別的全局設置。這三個文件都可以用來設置環境變量和運行初始化命令,但它們的加載時機和范圍有所不同。在實際使用中,根據需要進行適當的配置,以確保用戶環境和系統設置符合需求。

$PATH

在配置環境變量時,$PATH的位置(在前或在后)決定了新添加的路徑在搜索順序中的位置。這通常影響的是當多個路徑中存在相同名稱的可執行文件時,哪個會被首先找到并執行。在您給出的配置中:bash
export PATH=$JAVA_HOME/bin:$PATH
這里將$JAVA_HOME/bin添加到了$PATH的前面。這意味著當你嘗試運行一個命令時,shell會首先在$JAVA_HOME/bin目錄中查找該命令。如果在這里找不到,shell才會繼續沿著原來的$PATH查找。而在添加Redis的bin目錄時:bash
export PATH=$PATH:/usr/local/redis/bin
/usr/local/redis/bin被添加到了$PATH的末尾。這意味著當shell沿著$PATH搜索可執行文件時,它會最后才查看/usr/local/redis/bin。為什么這樣設置?這通常取決于你的具體需求和環境中可能存在的命令沖突。以下是一些可能的考慮:優先級:如果你希望$JAVA_HOME/bin中的命令優先于其他路徑中的同名命令被執行,你就會把它放在$PATH的前面。這在你有多個版本的Java安裝,并且想要確保使用特定版本時特別有用。
避免沖突:將新路徑添加到$PATH的末尾可以減少與現有命令的沖突。例如,如果/usr/local/redis/bin中有一個名為java的可執行文件,而你將其添加到$PATH的前面,那么當你嘗試運行java命令時,shell可能會錯誤地執行Redis目錄中的java,而不是你期望的JDK中的java。
安全性和可預測性:在某些情況下,你可能不希望新添加的路徑中的命令覆蓋現有路徑中的命令,以避免意外的行為或安全問題。將其添加到末尾可以提供更大的可預測性和安全性。
總之,$PATH中路徑的順序是一個重要的配置選擇,它決定了shell如何查找和執行命令。在你的例子中,將Java路徑放在前面可能是為了確保使用特定版本的Java,而將Redis路徑放在后面可能是為了避免與現有命令的沖突。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/16161.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/16161.shtml
英文地址,請注明出處:http://en.pswp.cn/web/16161.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

從程序被SQL注入來MyBatis 再談 #{} 與 ${} 的區別

緣由 最近在的一個項目上面,發現有人在給我搞 SQL 注入,我真的想說我那么點資源測試用的阿里云服務器,個人估計哈,估計能抗住他的請求。狗頭.png 系統上面的截圖 數據庫截圖 說句實在的,看到這個之后我立馬就是在…

游戲找不到d3dcompiler_43.dll怎么辦,教你5種可靠的修復方法

在電腦使用過程中,我們經常會遇到一些錯誤提示,其中之一就是“找不到d3dcompiler43.dll”。這個問題通常出現在游戲或者圖形處理軟件中,它會導致程序無法正常運行。為了解決這個問題,我經過多次嘗試和總結,找到了以下五…

idea2023的git從dev分支合并到主分支master

1.本地項目切換到主分支master 右鍵項目-git-Branches 依次點擊項目-Remote-Origin-master-CheckOut 現在你的idea中的這個項目就是遠程master分支的代碼了。 2.合并dev分支到master 右擊項目-git-Merge 選擇origin-dev 點擊Merge按鈕,此時只是合并到本地的maste…

每日一題---有效的括號問題

文章目錄 前言1.題目以及分析2.參考代碼 前言 前面我們學習了棧的相關操作,現在我們做一道題,進行鞏固 Leetcode—有效的括號 1.題目以及分析 這道題就可以使用棧進行操作,因為把最左邊的括號當成棧底,最右邊的是棧頂&#xff0c…

【每日刷題】Day49

【每日刷題】Day49 🥕個人主頁:開敲🍉 🔥所屬專欄:每日刷題🍍 🌼文章目錄🌼 1. 110. 平衡二叉樹 - 力扣(LeetCode) 2. 501. 二叉搜索樹中的眾數 - 力扣&…

基于YOLOv8的車牌檢測與識別(CCPD2020數據集)

前言 本篇博客主要記錄在autodl服務器中基于yolov8實現車牌檢測與識別,以下記錄實現全過程~ yolov8源碼:GitHub - ultralytics/ultralytics: NEW - YOLOv8 🚀 in PyTorch > ONNX > OpenVINO > CoreML > TFLite 一、環境配置 …

python學習:基礎語句

目錄 條件語句 循環語句 for 循環 while 循環 break continue 條件語句 Python提供了 if、elif、else 來進行邏輯判斷。格式如下: Pythonif 判斷條件1: 執行語句1... elif 判斷條件2: 執行語句2... elif 判斷條件3: 執行語句3... else: 執行語句4…

C# 集合(六) —— 自定義集合Collection類

總目錄 C# 語法總目錄 集合六 Collection 1. 自定義集合Collection其他 1. 自定義集合Collection Collection可以對添加刪除元素或者添加刪除屬性進行事件響應。 class Person {public string name;public int age;public Person(){this.name "";this.age 0;}pub…

ubuntu 硬盤轉移

我插了兩個 文件系統: ubuntu 硬盤轉移: sudo dd if/dev/sdX1 of/dev/sdY1 bs128K convnoerror,sync statusprogressdd 的意思是DiskToDisk,if 是輸入文件系統,of是輸出文件系統。 bs是每次傳遞的數據大小。 注意:接…

mysql-主從同步原理

AB復制(重點) 一、什么是主從復制? 1、主從同步也叫AB復制,是用來建立一個和主數據庫完全一樣的數據庫環境,稱為從數據庫;主數據庫一般是準實時的業務數據庫。 2、主從復制的作用 1.做數據的熱備,作為后備數據庫,…

如何用MySQL的SQL語句來讀寫硬盤目錄文件

1.先確保創建表,例如起名Temp CREATE TABLE temp ( id int(11) NOT NULL AUTO_INCREMENT, image mediumblob, PRIMARY KEY (id) ) ENGINEInnoDB AUTO_INCREMENT7 DEFAULT CHARSETutf8; 注意這里的image字段用mediumblog,就可以避免出現data too …

27【Aseprite 作圖】盆栽——拆解

1 橘子畫法拆解 (1)淺色3 1 0;深色0 2 3 就可以構成一個橘子 (2)淺色 2 1;深色1 0 (小個橘子) (3)淺色 2 1 0;深色1 2 3 2 樹根部分 (1)底部畫一條橫線 (2)上一行 左空2 右空1 【代表底部重心先在右】 (3)再上一行,左空1,右空1 (4)再上一行,左突出1,…

省市區(輸入code) 轉相應省市區工具類(兩種方式)

方式一 通過調用接口(時間高達1s) package cn.iocoder.yudao.module.supplier.utils;import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element;import java.io.BufferedReader; import java.io.InputStreamReader; i…

Java 泛型基礎

目錄 1. 為什么使用泛型 2. 泛型的使用方式 2.1. 泛型類 2.2. 泛型接口 2.3. 泛型方法 3. 泛型涉及的符號 3.1. 類型通配符"?" 3.2. 占位符 T/K/V/E 3.3. 占位符T和通配符?的區別。 4. 泛型不變性 5. 泛型編譯時擦除 1. 為什么使用泛型 Java 為…

基于深度學習的入侵檢測系統綜述文獻概述

好長時間不發博客了,不是因為我擺爛了,是我換研究方向了,以后我就要搞科研了。使用博客記錄我的科研故事,邀諸君共同見證我的科研之路。 1、研究方向的背景是什么? (1)互聯網發展迅速&#xff…

Android firebase消息推送集成 FCM消息處理

FirebaseMessagingService 是 Firebase Cloud Messaging (FCM) 提供的一個服務,用于處理來自 Firebase 服務器的消息。它有幾個關鍵的方法,你提到的 onMessageReceived、doRemoteMessage 和 handleIntent 各有不同的用途。下面逐一解釋這些方法的作用和用…

在 C++ 中,p->name 和 p.name 的效果并不相同。它們用于不同的情況,取決于你是否通過指針訪問結構體成員。

p->name&#xff1a;這是指針訪問運算符&#xff08;箭頭運算符&#xff09;。當 p 是一個指向結構體的指針時&#xff0c;用 p->name 來訪問結構體的成員。 student* p &stu; // p 是一個指向 student 類型的指針 cout << p->name << endl; // 通過…

基于ssm的蛋糕商城系統java項目jsp項目javaweb

文章目錄 蛋糕商城系統一、項目演示二、項目介紹三、系統部分功能截圖四、部分代碼展示五、底部獲取項目源碼&#xff08;9.9&#xffe5;帶走&#xff09; 蛋糕商城系統 一、項目演示 蛋糕商城管理系統 二、項目介紹 系統角色 : 管理員、用戶 一&#xff0c;管理員 管理員有…

PICO VR眼鏡定制播放器使用說明文檔videoplayerlib-ToB.apk

安裝高級定制播放器 高級定制播放器下載地址:https://download.csdn.net/download/ahphong/89360454 僅限用于PICO G2、G3、G4、NEO系列VR眼鏡上使用, 用途:用于第三方APP(開發者)調用定制播放器播放2D、3D、180、360全景視頻。 VR眼鏡系統請升級到最新版,可在官網下載,…

Mixed-precision計算原理(FP32+FP16)

原文&#xff1a; https://lightning.ai/pages/community/tutorial/accelerating-large-language-models-with-mixed-precision-techniques/ This approach allows for efficient training while maintaining the accuracy and stability of the neural network. In more det…