Ubuntu系統中Redis的安裝步驟及服務配置

目錄

內容概括

系統環境

安裝方式

1、apt包管理器安裝

(1)安裝redis服務

(2)安裝客戶端(進入命令行操作使用,包含redis-cli)

(3)安裝檢驗

(4)其他操作

2、解壓縮編譯安裝步驟

(1)安裝依賴

(3)編譯Redis

(4)測試編譯文件(可選)

(5)安裝Redis

(6)啟動Redis

服務啟動可能遇到的問題

(a)Redis推薦配置檢測問題

(b)端口占用問題

(7)安裝檢驗

(8)添加Redis開機自啟服務


內容概括

????????本文主要記錄了Ubuntu服務器中Redis服務的安裝使用,包括apt安裝和解壓縮編譯安裝兩種方式,并對安裝過程中可能出現的問題、解決方案進行說明,以及在手動安裝時,服務器如何添加自定義服務的問題。

系統環境

????????ubuntu-22.04.4-live-server

安裝方式

????????在安裝方式選擇上,如果對于Redis的版本沒有明確要求,可以直接通過apt包管理器命令安裝,簡單快捷,也比較省事。

????????如果對于Redis的版本有明確要求,由于apt軟件源中可用的版本相對較少,這時候可能就需要手動下載對應的版本壓縮包,通過解壓縮編譯安裝,然后手動配置服務,相對來說,這種方式會復雜一點點。

1、apt包管理器安裝

更新apt軟件包索引:sudo apt update(可選)

(1)安裝redis服務

sudo apt install redis-server

(2)安裝客戶端(進入命令行操作使用,包含redis-cli)

sudo apt install redis tools

(3)安裝檢驗

執行 redis-cli?進入redis命令行,在操作界面輸入ping 返回 PONG 說明安裝正確,也可以存取鍵值測試:

(4)其他操作

查看版本:redis-cli -v

查看Redis進程信息:ps -ef | grep redis

此方式版本由apt默認,配置文件默認位于/etc/redis/redis.conf,

如果需要修改Redis配置,可以調整配置文件參數,或者直接替換默認配置文件。

常見配置參數:

bind 127.0.0.1:指定 Redis 綁定的 IP 地址,默認綁定在本地回環地址。

protected-mode yes:保護模式,建議保持開啟。

port 6379:指定 Redis 偵聽的端口。

daemonize no:是否以后臺守護進程方式運行,生產環境中建議設置為 `yes`。

logfile "":指定日志文件路徑,如果不指定,則日志輸出到標準輸出。

dir ./:指定工作目錄,用于存放數據庫文件。

命令查看當前apt軟件源中的可用版本(執行任意一個即可):

?apt info redis-server

apt show -a redis-server

apt-cache madison redis-server

卸載服務:

1)停止redis服務:sudo systemctl stop redis-server

2)卸載redis-server包:sudo apt-get remove --purge redis-server

3)清理殘留包:sudo apt-get remove --purge redis-server

4)清除redis數據目錄(可選):sudo rm -r /var/lib/redis

5)更新apt緩存(可選):sudo apt update

2、解壓縮編譯安裝步驟

Redis不同版本安裝包的下載地址網上很多,這里提供一個華為云的地址,沒有下載地址的話可以先用著,基本上各個版本都有,找到自己需要的版本下載即可:Index of redis-localicon-default.png?t=O83Ahttps://mirrors.huaweicloud.com/redis/

(1)安裝依賴

首先,確保你的系統已經安裝了必要的編譯工具和依賴項。

命令行終端運行以下命令安裝:

sudo apt update

sudo apt install build-essential tcl

(2)解壓縮 Redis 包

進入到你下載的自定義版本軟件包目錄,可以在自己建一個項目路徑,專門用于Redis服務。

在這里,如果你是使用遠程連接工具操作服務器,且又是在根目錄下創建的Redis文件目錄,那么上傳文件時,可能會遇到沒有寫入權限的問題,導致上傳失敗:

解決方案有兩種:

1)先將文件上傳到普通用戶目錄,然后使用sudo cp “普通用戶文件地址” “根目錄文件位置” 命令將壓縮包文件拷貝到對應位置,或者mv移動也行。

2)更改根目錄下創建的redis服務目錄的權限,使得其他用戶也具有讀、寫、執行權限,

在文件夾所在目錄位置執行 sudo chmod 777 redis/?即可。

ok,接下來繼續安裝步驟,

這里以 `redis-7.2.4.tar.gz` 為例,上傳到自己的目錄后,解壓縮該文件:

解壓:sudo tar xzf redis-7.2.4.tar.gz

進入解壓后的文件目錄:cd redis-7.2.4

解壓之后可以看到文件夾內的內容:

(3)編譯Redis

在解壓縮后的目錄中,運行命令編譯 Redis:

sudo make

編譯會跑一小會兒,過程中不需要額外操作,等待跑完回到命令行輸入行就行。

編譯完如下:

(4)測試編譯文件(可選)

為了確保編譯后的 Redis 沒有問題,可以運行測試套件:

sudo make test

測試也會跑一小會兒,喝口水吃顆糖做幾個俯臥撐啥的,耐心等待一下即可,如果所有測試都通過,說明編譯成功,完成后如下:

(5)安裝Redis

編譯完成后,即可將 Redis 安裝到系統中:

sudo make install

(6)啟動Redis

加壓縮編譯安裝的Redis服務,配置文件redis.conf就在解壓縮目錄下,同樣可以根據實際需求,進行編輯調整參數,或者替換。

手動啟動:sudo redis-server redis.conf(不帶配置文件參數的話,默認是解壓目錄下的配置文件,解壓目錄下執行,不在解壓目錄下的話,需要加上配置文件的絕對路徑)

服務啟動可能遇到的問題
(a)Redis推薦配置檢測問題

報錯信息如下:

查了下意思是,Redis檢測到系統的內存過度提交(memory overcommit)設置不符合其推薦配置,巴拉巴拉啥的。

解決方式:

默認配置關閉了守護進程方式啟動,使用時一般Redis都是以守護進程方式啟動。

修改配置文件參數,使用守護進程方式啟動即可(常見參數解析方式1有簡單介紹)

(b)端口占用問題

解決方式:

1)更改配置文件中的端口號配置。

2)查看當前進程端口占用情況,找到占用端口的進程,結束其他占用端口的進程(sudo kill -9 <進程號>),之后重新啟動服務即可。

問題解決之后即可正常啟動Redis服務

(7)安裝檢驗

啟動服務之后檢測是否安裝成功、正常使用。

查看版本:redis-server -v,并存取鍵值測試,可以看到正常使用。

(8)添加Redis開機自啟服務

對于手動解壓縮編譯安裝的Redis,每次開機時,如果要使用Redis,還需要手動開啟服務,如果想要服務開機自啟,就需要添加自定義服務了。

自定義服務步驟:

(a)首先,進入系統目錄 /etc/systemd/system/ ,

執行sudo touch redis-server.service 創建一個自定義服務 redis-server.service

(b)然后編輯redis-server.service文件,文件內容模版如下:

[Unit]
Description=redis server
Documentation=https://redis.io/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target[Service]
Type=forking
PIDFile=/var/run/redis_6379.pid
ExecStart=redis-server /data/redis/redis.conf
ExecReload=/bin/sh -c "/bin/kill -s HUP $(/bin/cat /var/run/redis_6379.pid)"
ExecStop=/bin/sh -c "/bin/kill -s TERM $(/bin/cat /var/run/redis_6379.pid)"[Install]
WantedBy=multi-user.target

需要關注的是 ExecStart=redis-server /data/redis/redis.conf,這里存放的是我們手動啟動的執行命令,需要根據自己配置文件的所在位置自行調整,其他地方基本上都差別不大,有興趣的同學也可以動動小手去查閱一下各項參數的作用。

插播一下:

如果覺得在終端編輯比較慢,也可以在自己找好一個模版,根據自己的配置文件路徑修改完之后,直接將這個自定義文件上傳到此目錄下,效果也一致。

(c)開啟自定義服務

保存自定義服務后,重新加載服務單元文件:sudo systemctl daemon-reload

將自定義的redis服務文件設置為自啟:sudo systemctl enable redis-server.service

啟動自定義服務:sudo systemctl start redis-server.service

查看服務狀態:sudo systemctl status redis-server.service

重啟檢驗開機自啟情況,可以看到效果跟預期一致。

ok,到這里,本次分享記錄也算是結束了,希望能對你有所幫助,當然,也包括記性不太好的我自己,也是時常翻閱自己的記錄和大家的分享。

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

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

相關文章

半導體設備中的微型導軌應如何選擇合適的潤滑油?

微型導軌的潤滑對于保證其高精度和高穩定性至關重要&#xff0c;尤其是在半導體設備中&#xff0c;微型導軌的潤滑油選擇需要考慮多個因素&#xff0c;以確保設備的最佳性能和壽命。以下是一些關鍵點&#xff1a; 1、黏度&#xff1a;潤滑油的黏度是影響其流動性和潤滑效果的重…

RocketMq詳解:六、RocketMq的負載均衡機制

上一章&#xff1a;《SpringBootAop實現RocketMq的冪等》 文章目錄 1.背景1.1 什么是負載均衡1.2 負載均衡的意義 2.RocketMQ消息消費2.1 消息的流轉過程2.2 Consumer消費消息的流程 3.RocketMq的負載均衡策略3.1 Broker負載均衡3.2 Producer發送消息負載均衡3.3 消費端的負載均…

yocto的xxx.bb文件在什么時候會拷貝文件到build目錄

在 Yocto 中&#xff0c;.bb 文件用于描述如何構建和安裝一個軟件包&#xff0c;而文件在構建過程中的拷貝操作通常會在某些特定的步驟中進行。具體來說&#xff0c;文件會在以下幾個階段被拷貝到 build 目錄&#xff08;或者更準確地說&#xff0c;拷貝到目標目錄 ${D}&#x…

主打極致性價比,AMD RX 8600/8800顯卡定了

*以下內容僅為網絡爆料及傳聞&#xff0c;一切以官方消息為準。 這誰能想到&#xff0c;率先掏出下一代桌面獨立顯卡的不是老大哥 NVIDIA&#xff0c;也不是 AMD&#xff0c;反而是三家中存在感最弱的 Intel&#xff01; 就在 12 月 3 日&#xff0c;Intel 正式發布了自家第二…

數組哪些方法會觸發Vue監聽,哪些不會觸發監聽

發現寶藏 前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。【寶藏入口】。 在 Vue 中&#xff0c;數組的變化是通過 響應式 系統來監聽的。Vue 使用 getter 和 setter 來追蹤數組的變化&#xff0c;并在數…

npm, yarn, pnpm之間的區別

前言 在現代化的開發中&#xff0c;一個人可能同時開發多個項目&#xff0c;安裝的項目越來越多&#xff0c;所隨之安裝的依賴包也越來越臃腫&#xff0c;而且有時候所安裝的速度也很慢&#xff0c;甚至會安裝失敗。 因此我們就需要去了解一下&#xff0c;我們的包管理器&#…

工業檢測基礎-工業相機選型及應用場景

以下是一些常見的工業檢測相機種類、檢測原理、應用場景及選型依據&#xff1a; 2D相機 檢測原理&#xff1a;基于二維圖像捕獲&#xff0c;通過分析圖像的明暗、紋理、顏色等信息來檢測物體的特征和缺陷.應用場景&#xff1a;廣泛應用于平面工件的外觀檢測&#xff0c;如檢測…

C語言連接數據庫

文章目錄 一、初始化數據庫二、創建數據庫連接三、執行增刪改查語句1、增刪改2、查 四、執行增刪改查語句 接下來我簡單的介紹一下怎么用C語言連接數據庫。 初始化數據庫創建數據庫連接執行增刪改查語句關閉數據庫連接 一、初始化數據庫 // 數據庫初始化 MYSQL mysql; MYSQL* r…

優化LabVIEW數據運算效率的方法

在LabVIEW中進行大量數據運算時&#xff0c;提升計算效率并減少時間占用是開發過程中常遇到的挑戰。為此&#xff0c;可以從多個角度著手優化&#xff0c;包括合理選擇數據結構與算法、并行處理、多線程技術、硬件加速、內存管理和界面優化等。通過采用這些策略&#xff0c;可以…

開源模型應用落地-安全合規篇-用戶輸入價值觀判斷(四)

一、前言 在深度合規功能中,對用戶輸入內容的價值觀判斷具有重要意義。這一功能不僅僅是對信息合法性和合規性的簡單審核,更是對信息背后隱含的倫理道德和社會責任的深刻洞察。通過對價值觀的判斷,系統能夠識別可能引發不當影響或沖突的內容,從而為用戶提供更安全、更和諧的…

計算機的錯誤計算(一百七十六)

摘要 利用某一大語言模型計算 的值&#xff0c;輸出為 0 . 例1. 在某一大語言模型下&#xff0c;計算 的值。其中sin中值取弧度。結果保留16位有效數字。 直接貼圖吧&#xff1a; 點評&#xff1a; &#xff08;1&#xff09;以上為一個大模型給的答案。從其回答可知&…

數據結構與算法——1204—遞歸分治法

1、斐波那契數列優化 使用滾動變量&#xff0c;保存當前計算結果和前兩項值 (1)RAB (2)更新計算對象&#xff0c;AB&#xff0c;BR #include<iostream> using namespace std;int fun(int n) {if (n 0)return 0;if (n 1 || n 2)return 1;int num11;int num21;int su…

openstack內部rpc消息通信源碼分析

我們知道openstack內部消息隊列基于AMQP協議&#xff0c;默認使用的rabbitmq 消息隊列。談到rabbitmq&#xff0c;大家或許并不陌生&#xff0c;但或許會對oslo message有些陌生。openstack內部并不是直接使用rabbitmq&#xff0c;而是使用了oslo.message 。oslo.message 后端的…

Python 3 和 MongoDB 的集成使用

Python 3 和 MongoDB 的集成使用 MongoDB 是一個流行的 NoSQL 數據庫&#xff0c;以其靈活的數據模型和強大的查詢功能而聞名。Python 3 作為一種廣泛使用的編程語言&#xff0c;與 MongoDB 的集成變得日益重要。本文將介紹如何在 Python 3 環境中集成和使用 MongoDB&#xff…

Postman自定義腳本Pre-request-script以及Test

這兩個都是我們進行自定義script腳本的地方&#xff0c;分別是在請求執行的前后運行。 我們舉兩個可能經常運用到的場景。 (一)請求A先執行&#xff0c;請求B使用請求A響應結果作為參數。如果我們不用自定義腳本&#xff0c;可能得先執行請求A&#xff0c;然后手動復制響應結果…

構建高效OTA旅游平臺的技術指南

1. 引言 在信息技術高速發展的今天&#xff0c;互聯網深刻地改變了人們的旅行方式。傳統的旅行社模式逐漸被在線旅游平臺所取代&#xff0c;OTA&#xff08;Online Travel Agency&#xff0c;在線旅行社&#xff09;旅游平臺應運而生&#xff0c;成為人們獲取旅游信息、預訂旅…

總結的一些MySql面試題

目錄 一&#xff1a;基礎篇 二&#xff1a;索引原理和SQL優化 三&#xff1a;事務原理 四&#xff1a;緩存策略 一&#xff1a;基礎篇 1&#xff1a;定義&#xff1a;按照數據結構來組織、存儲和管理數據的倉庫&#xff1b;是一個長期存儲在計算機內的、有組織的、可共享 的…

116. UE5 GAS RPG 實現擊殺掉落戰利品功能

這一篇&#xff0c;我們實現敵人被擊敗后&#xff0c;掉落戰利品的功能。首先&#xff0c;我們將創建一個新的結構體&#xff0c;用于定義掉落體的內容&#xff0c;方便我們設置掉落物。然后&#xff0c;我們實現敵人死亡時的掉落函數&#xff0c;并在藍圖里實現對應的邏輯&…

Excel技巧:如何批量調整excel表格中的圖片?

插入到excel表格中的圖片大小不一&#xff0c;如何做到每張圖片都完美的與單元格大小相同&#xff1f;并且能夠根據單元格來改變大小&#xff1f;今天分享&#xff0c;excel表格里的圖片如何批量調整大小。 方法如下&#xff1a; 點擊表格中的一個圖片&#xff0c;然后按住Ct…

智能合約

06-智能合約 0 啥是智能合約&#xff1f; 定義 智能合約&#xff0c;又稱加密合約&#xff0c;在一定條件下可直接控制數字貨幣或資產在各方之間轉移的一種計算機程序。 角色 區塊鏈網絡可視為一個分布式存儲服務&#xff0c;因為它存儲了所有交易和智能合約的狀態 智能合約還…