CentOS7 安裝 Redis 7.0.2

来源:https://www.cnblogs.com/broadm/archive/2022/06/25/16412013.html
-Advertisement-
Play Games

安裝 Redis # 首先安裝依賴gcc, 後面需要使用make編譯redis yum install gcc -y # 進入 /usr/local/src 目錄, 把源碼下載到這裡 cd /usr/local/src # 下載 redis 7.0.2 的源碼,github被牆,可以使用國內的地址 ...


安裝 Redis


# 首先安裝依賴gcc, 後面需要使用make編譯redis
yum install gcc -y

# 進入 /usr/local/src 目錄, 把源碼下載到這裡
cd /usr/local/src

# 下載 redis 7.0.2 的源碼,github被牆,可以使用國內的地址
wget http://download.redis.io/releases/redis-7.0.2.tar.gz

# 解壓縮
tar zxvf redis-7.0.2.tar.gz

# 進入解壓後的文件夾
cd redis-7.0.2

# 編譯並安裝 redis, 漫長的等待...
make && make install

# 安裝完成後,redis會被預設安裝在  /usr/local/bin/
# 查看下這個目錄下的文件,可以看到有 redis-server, 這個文件就是redis的服務程式了
ls /usr/local/bin/

啟動 Redis

# 因為redis被預設安裝在/usr/local/bin,這個目錄預設就在系統的環境變數中(不信,你可以使用 env 命令,查看一下你的PATH是不是有)
# 所以,我們可以在任意位置運行 redis-server 來啟動 redis
redis-server

啟動成功,你可以看到如下界面:

redis啟動成功.png

但是這裡有些問題:

  • redis的預設埠是 6379, 假如這個埠被占用了怎麼辦?
[root@broadm ~]# redis-server
6610:C 25 Jun 2022 15:47:53.378 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
6610:C 25 Jun 2022 15:47:53.378 # Redis version=7.0.2, bits=64, commit=00000000, modified=0, pid=6610, just started
6610:C 25 Jun 2022 15:47:53.378 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
6610:M 25 Jun 2022 15:47:53.379 * Increased maximum number of open files to 10032 (it was originally set to 1024).
6610:M 25 Jun 2022 15:47:53.379 * monotonic clock: POSIX clock_gettime
6610:M 25 Jun 2022 15:47:53.380 # Warning: Could not create server TCP listening socket *:6379: bind: Address already in use
6610:M 25 Jun 2022 15:47:53.380 # Failed listening on port 6379 (TCP), aborting.

  • redis-server 預設以前臺方式啟動,即啟動完成後,一直占據命令視窗,我們無法再執行其他操作了,這明顯不合適,我們需要的是後臺啟動

修改配置文件

好在 redis 提供了配置文件,我們可以配置redis,修改預設埠,修改啟動方式為後臺啟動,修改密碼等等.

還記得上面,我們解壓redis的目錄嗎? 沒錯,就是 /usr/local/src/redis-7.0.2, 讓我們進入到這個目錄, redis的配置文件就在這裡 redis.conf

# 進入redis的解壓目錄
cd /usr/local/src/redis-7.0.2

# 查看目錄內容, 你會看到 redis.conf
ls

# 在編輯 redis.conf 之前, 好的做法是先備份它
cp redis.conf redis.conf.backup

# 好了,現在我們可以大膽的修改 redis.conf 了
vim redis.conf

後臺啟動

首先我們搜索 daemonize , vim的查找操作別忘了(不會的話自己百度)
找到 daemonize no 這一行, 然後我們把 no 修改為 yes, 這樣就可以後臺啟動redis了

daemonize yes

設置密碼

我們搜索 requirepass,找到 # requirepass foobared 這一行, 我們可以看到預設密碼這一行被註釋了,說明預設沒有開啟密碼保護

requirepass 你的密碼

設置埠

搜索 port, 你會發現 port 6379 這一行, 需要的話你就改它吧(比如,你的6379埠被其他程式占用了)

port 6379

允許遠程訪問

找到 bind 127.0.0.1 -::1, 修改為

bind 0.0.0.0

修改其他配置請查看官方文檔

OK, 改完了配置文件, 我們要怎麼使用它呢? 很簡單:
執行下麵的命令,必須要在 redis.conf 所在的文件夾, 就是上面的 /usr/local/src/redis-7.0.2
如果你離開這個文件夾了,請使用完整的路徑 redis-server /usr/local/src/redis-7.0.2/redis.conf

redis-server redis.conf

現在redis就是以後臺的方式啟動了,看看我的實操:

[root@broadm redis-7.0.2]# redis-server redis.conf
[root@broadm redis-7.0.2]# ps -ef | grep redis
root       6573   1970  0 15:47 pts/0    00:00:05 redis-server *:6379
root       6704   6583  0 16:25 pts/1    00:00:00 grep --color=auto redis
[root@broadm redis-7.0.2]# 

開機自啟

這種啟動的方式很low啊,每次重啟機器的話,是不是都要手動敲命令啊
沒錯,你需要開機自啟,也就是需要搞成系統服務,讓我們開始吧:

首先,你要為redis編寫一個系統服務文件:

vim /etc/systemd/system/redis.service

文件內容如下:

[Unit]
Description=redis-server
After=network.target

[Service]
Type=forking

ExecStart=/usr/local/bin/redis-server /usr/local/src/redis-7.0.2/redis.conf
PrivateTmp=true

[Install]
WantedBy=multi-user.target

註意: 上面的 ExecStart , 如果你按照我的方式一步步來的話,不用改,否則修改為自己的實際安裝路徑

重新載入系統服務

systemctl daemon-reload

設置開機自啟:

systemctl enable redis

啟動,停止,卸載,查看狀態

# 啟動redis服務
systemctl start redis

# 查看服務狀態
systemctl status redis

# 停止服務
systemctl stop redis

# 取消開機自動啟動(卸載服務)
systemctl disabled redis
  • 如果你在啟動redis之後, 使用 systemctl status redis 發現,
    沒有啟動成功, 這可能是因為,你之前已經啟動了redis了,首先把之前啟動的關閉後,再使用 systemctl start redis

  • 你可以使用 ps -ef | grep redis 查看正在運行的redis進程

  • 使用 kill -9 進程ID 殺死正在運行的進程

補充: 如果您的伺服器開啟了防火牆,您需要把redis的埠放行,或者您是使用的雲伺服器,您同樣需要配置防火牆

正常的運行狀態應該是下麵這樣的,祝你好運!!!

[root@broadm redis-7.0.2]# systemctl status redis
● redis.service - redis-server
   Loaded: loaded (/etc/systemd/system/redis.service; enabled; vendor preset: disabled)
   Active: active (running) since 六 2022-06-25 16:46:10 CST; 3s ago
  Process: 6907 ExecStart=/usr/local/bin/redis-server /usr/local/src/redis-7.0.2/redis.conf (code=exited, status=0/SUCCESS)
 Main PID: 6908 (redis-server)
    Tasks: 5
   Memory: 6.7M
   CGroup: /system.slice/redis.service
           └─6908 /usr/local/bin/redis-server 127.0.0.1:6379

6月 25 16:46:10 broadm systemd[1]: Starting redis-server...
6月 25 16:46:10 broadm systemd[1]: Started redis-server.


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、什麼是智能指針 一般來講C++中對於指針指向的對象需要使用new主動分配堆空間,在使用結束後還需要主動調用delete釋放這個堆空間。為了使得自動、異常安全的對象生存期管理可行,就出現了智能指針這個概念。簡單來看智能指針是 RAII(Resource Acquisition Is Initial ...
  • 我們在做採集數據的時候,過快或者訪問頻繁,或者一訪問就給彈出驗證碼,然後就蚌珠了~ 今天就給大家來一個簡單處理驗證碼的方法 環境模塊 本文使用的是 Python和pycharm 這裡需要用到一個 ddddocr 模塊 ,這是別人開源寫好的一個東西,簡單又好用,但是精確度差一點點,但是還是非常好用的。 ...
  • mysql服務端整體架構 主要分為兩部分,server層和存儲引擎 server層包括連接器、查詢緩存、分析器、優化器、執行器等,涵蓋mysql的大多數核心服務過功能,以及所有的內置函數,所有跨存儲引擎的功能都在這一層實現,比如存儲過程,觸發器,視圖等 存儲引擎層負責數據等存儲和讀取,其架構模式是插 ...
  • tunm二進位協議在python上的實現 tunm是一種對標JSON的二進位協議, 支持JSON的所有類型的動態組合 支持的數據類型 基本支持的類型 "u8", "i8", "u16", "i16", "u32", "i32", "u64", "i64", "varint", "float", "s ...
  • 迎面走來了你的面試官,身穿格子衫,挺著啤酒肚,髮際線嚴重後移的中年男子。 手拿泡著枸杞的保溫杯,胳膊夾著MacBook,MacBook上還貼著公司標語:“加班使我快樂”。 面試官: 看你簡歷上用過MySQL,問你幾個簡單的問題吧。什麼是聚簇索引和非聚簇索引? 這個問題難不住我啊。來之前我看一下一燈M ...
  • Python中的字典 Python中的字典是另一種可變容器模型,且可存儲任意類型對象。鍵值使用冒號分割,你可以看成是一串json。 常用方法 獲取字典中的值 dict[key] 如果key不存在會報錯,建議使用dict.get(key),不存在返回None 修改和新建字典值 dict[key]=va ...
  • 事情的起因是收到了一位網友的請求,他的java課設需要設計實現迷宮相關的程式——如標題概括。 我這邊不方便透露相關信息,就只把任務要求寫出來。 演示視頻指路👉: 基於JavaFX圖形界面的迷宮程式演示_嗶哩嗶哩_bilibili 完整代碼鏈接🔎: 網盤:https://pan.baidu.com ...
  • Redis 的定義? 百度百科: Redis(Remote Dictionary Server ),即遠程字典服務,是一個開源的使用ANSI C語言編寫、支持網路、可基於記憶體亦可持久化的日誌型、Key-Value資料庫,並提供多種語言的API。 中文官網: Redis是一個開源(BSD許可),記憶體存 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...