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, 假如這個埠被占用了怎麼辦?
[[email protected] ~]# 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就是以後臺的方式啟動了,看看我的實操:

[[email protected] redis-7.0.2]# redis-server redis.conf
[[email protected] 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
[[email protected] 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的埠放行,或者您是使用的雲伺服器,您同樣需要配置防火牆

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

[[email protected] 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
  • 使用原因: 在我們服務端調用第三方介面時,如:支付寶,微信支付,我們服務端需要模擬http請求並加上一些自己的邏輯響應給前端最終達到我們想要的效果 1.使用WebClient 引用命名空間 using System.Net; using System.Collections.Specialized; ...
  • WPF 實現帶蒙版的 MessageBox 消息提示框 WPF 實現帶蒙版的 MessageBox 消息提示框 作者:WPFDevelopersOrg 原文鏈接: https://github.com/WPFDevelopersOrg/WPFDevelopers.Minimal 框架使用大於等於.N ...
  • 一、JSON(JavaScript Object Notation)的簡介: ① JSON和XML類似,主要用於存儲和傳輸文本信息,但是和XML相比,JSON更小、更快、更易解析、更易編寫與閱讀。 ② C、Python、C++、Java、PHP、Go等編程語言都支持JSON。 二、JSON語法規則: ...
  • 1.避免Scoped模式註冊的服務變成Singleton模式 當提供一個生命周期模式為Singleton的服務實例時,如果發現該服務中還依賴生命周期模式為Scoped的服務實例(Scoped服務實例將被一個Singleton服務實例所引用),那麼這個被依賴的Scoped服務實例最終會成為一個Sing ...
  • 索引時資料庫提高數據查詢處理性能的一個非常關鍵的技術,索引的使用可以對性能產生上百倍甚至上千倍的影響。接下來,會介紹索引的基本原理、概念,並深入學習資料庫中所使用的索引結構和存儲方式,以及如何管理、維護索引等。 1.索引的基本概念 索引時用來快速查詢表記錄的一種存儲結構,一般使用索引有一下兩個方面: ...
  • django2 路由控制器 Route路由,是一種映射關係。路由是把客戶端請求的url路徑和用戶請求的應用程式,這裡意指django裡面的視圖進行綁定映射的一種關係。 請求路徑和視圖函數不是一一對應的關係 在django中所有的路由最終都被保存到一個叫urlpatterns的文件里,並且該文件必須在 ...
  • 1、我們的目標是獲取微博某博主的全部圖片、視頻 2、拿到網址後 我們先觀察 打開F12 隨著下滑我們發現載入出來了一個叫mymblog的東西,展開響應發現需要的東西就在裡面 3、重點來了!!! 通過觀察發現第二頁比第一頁多了參數since_id 而第二頁的since_id參數剛好在上一頁中能獲取到, ...
  • 一、實現原理 在Servlet3協議規範中,包含在JAR文件/META-INFO/resources/路徑下的資源可以直接訪問。 二、舉例說明 如下圖所示,是我新建的一個Spring Boot Starter項目:zimug-minitor-threadpool,用於實現可配置、可觀測的線程池。其中 ...
  • 精華筆記: static final常量:應用率高 必須聲明同時初始化 由類名打點來訪問,不能被改變 建議:常量所有字母都大寫,多個單詞用_分隔 編譯器在編譯時會將常量直接替換為具體的數,效率高 何時用:數據永遠不變,並且經常使用 抽象方法: 由abstract修飾 只有方法的定義,沒有具體的實現( ...
  • Python有一個for...else語法,它的寫法如下 for i in range(0,100): if i == 3: break else: print("Not found") 該語句表示:若for迴圈遍歷完畢,則執行else部分的語句。也就是說上述代碼不會有任何輸出,而下述代碼會輸出“N ...