02. Install redis on Linux

来源:https://www.cnblogs.com/ZJiQi/archive/2019/02/20/10405906.html
-Advertisement-
Play Games

安裝下載redis,參考官方文檔:https://redis.io/download 下載: shell>wget http://download.redis.io/releases/redis-3.2.6.tar.gz # 這裡版本讀者應該已官方最新stable版本為準 Notice:我使用的安裝 ...


shell>wget http://download.redis.io/releases/redis-3.2.6.tar.gz  #  這裡版本讀者應該已官方最新stable版本為準
  • Notice:我使用的安裝目錄是/ghca/redis ; 使用的版本是3.2.6; 下文提到的有關目錄和版本,請讀者已自己實際目錄和版本替換。
  • 解壓編譯安裝:
shell>tar zxf redis-3.2.6.tar.gz
shell>cd redis-3.2.6
shell>make
這是二進位程式已經編譯到了src目錄下,啟動redis-server可以直接就執行其二進位文件,也可以對啟進行make install 安裝,將可執行程式移到指定安裝目錄下
shell>make install PREFIX=/ghca/redis
這一步將redis相關二進位可執行程式安裝到/ghca/redis
shell>cd /ghca/redis
shell>mkdir log etc #創建日誌和配置目錄
shell>mkdir data    #創建rdb和dump文件存放目錄
  • 系統級配置修改 (修改配置這一步,可以到啟動redis-server後,按照日誌報警提示對應修改)
shell>sysctl vm.overcommit_memory=1
      • 2)查看cat /sys/kernel/mm/transparent_hugepage/enabled,如果不是[never] 那麼執行,如列印“[always] madvise never“則執行:
shell>echo never >/sys/kernel/mm/transparent_hugepage/enabled
shell>cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
還要將echo 命令加入到 /etc/rc.local 為了在重啟設置
shell>vi /etc/rc.local
echo never > /sys/kernel/mm/transparent_hugepage/enabled
      • 3)tcp backlog設置,預設配置是511,如果啟動是日誌有警告warn 則需要修改系統/proc/sys/net/core/somaxconn的值為511
shell>echo 511 >/proc/sys/net/core/somaxconn
    • 操作系統最好還是設置swap
  • 創建配置文件,從源碼中賦值配置模板,在配置模板基礎上修改。具體配置內容參見《03.Redis-配置文件》
將源碼文件夾下的配置文件複製到安裝目錄下的配置文件目錄
shell>cd etc
shell>cp <源碼路徑>/redis.conf /ghca/redis/etc/
相關配置介紹說明(可以略過):
1)然後根據需求修改相應配置,不過要redis在後臺運行,general 模塊的第一個directive: daemonize no 要修改為daemonize yes
2)3.2.6版本多了安全模式配置,預設是開啟安全模式,開啟安全模式是一層保護redis的措施,如果:沒有明確指定bind配置或者沒有password配置,redis就會在安全模式下運行。redis只會接受連接來自IPV4 IPV6的loopback地址(127.0.0.1)和unix domain sockets 的連接。
3)tcp-keepalived 顧名思義:redis是tcp協議,為了保證client與redis-server之間活起的,該配置會讓redis-server一定周期向client發送一個acks,可配置tcp-keepalived為0 要求沒那麼嚴格的話。
4)有關snapshot-鏡像快照:save <seconds> <changes>  時間和次數 兩個維度條件滿足,那麼就做一次snapshot。save的策略可以有多個,因為有時間這個維度的參與,時間到了滿足個數的條件就執行。 這個時間起始計數應該是一次changed的開始吧??,不要快照就註釋所有save。如果最後一次快照失敗,那麼redis會停止所有的對redis key的寫操作。這樣能夠讓adm知道出現了故障,否則就不會有人註意到災難的發生。如果後臺saving線程再次開始工作了,redis將自動允許寫操作。
5)複製replication:
6)網路配置
7)指定pid文件,創建指定日誌文件,日誌文件名最好跟上埠號
創建啟動腳本,通過service 管理;
shell>cp <源碼路徑>/utils/redis_init_start  /tmp/  # 註意redis更高的版本redis_init_start 文件名改為了redis_init_script,高版本的操作這個文件即可
shell>修改/tmp/redis_init_start 或者 /tmp/redis_init_script
實例內容如下:
#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
 
### BEGIN INIT INFO
# Provides:     redis_6379
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    Redis data structure server
# Description:          Redis data structure server. See https://redis.io
### END INIT INFO
 
REDISPORT=6379   # 埠號,和配置文件一致
REDIS_HOME=/ghca/redis  # redis安裝目錄
EXEC=$REDIS_HOME/bin/redis-server
CLIEXEC=$REDIS_HOME/bin/redis-cli
 
PIDFILE=/ghca/redis/redis.pid   # pid文件路徑 和配置文件中設置的路徑一致
CONF="$REDIS_HOME/etc/redis.conf"  # 配置文件路徑
 
case "$1" in
    start)
        if [ -f $PIDFILE ]
        then
                echo "$PIDFILE exists, process is already running or crashed"
        else
                echo "Starting Redis server..."
                $EXEC $CONF
        fi
        ;;
    stop)
        if [ ! -f $PIDFILE ]
        then
                echo "$PIDFILE does not exist, process is not running"
        else
                PID=$(cat $PIDFILE)
                echo "Stopping ..."
                $CLIEXEC -p $REDISPORT shutdown
                while [ -x /proc/${PID} ]
                do
                    echo "Waiting for Redis to shutdown ..."
                    sleep 1
                done
                echo "Redis stopped"
        fi
        ;;
    *)
        echo "Please use start or stop as first argument"
        ;;
esac
  
將啟動文件複製到/etc/init.d/目錄下:如,sudo cp /tmp/redis_init_start /etc/init.d/redis_server  複製的service服務名可以自己定義,我這裡定義為redis_server;後面就可以使用service 啟停redis_server服務了。不要忘記,配置文件redis.conf我們還沒修改,下一步就修改配置文件了:
設置完啟動腳本後,就要去設置配置文件內容了,配置文件內容參考《03. Redis-配置文件》
  • 最後,添加redis 安裝目錄bin 到PATH中,"export PATH=/ghca/redis/bin:$PATH"  到~/.bashrc文件最後。添加完成source ~/.bashrc 載入。
 
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 正如前面所講的, redis 的數據結構就是一系列的鍵值對鍵 -> printable ASCII (可列印的 ASCII 碼, 最大值是 512MB)值 -> Primitives (基本的) string 字元串 (最大值是 512MB) Containers (of string) (以其他形 ...
  • “distinct” 是可選參數,用於剔除查詢結果中重覆的數據。 4.1 簡單查詢 ①查詢所有欄位 註意: 1、一般情況下,除非需要使用表中所有欄位的數據,否則最好不要使用星號通配符,使用通配符雖然可以節省輸入查詢語句的時間,但由於獲取的數據過多會降低查詢的效率; 2、對於欄位顯示的信息較多時,分號 ...
  • -- Oracle資料庫日期|時間查詢 SELECT SYSDATE FROM DUAL; SELECT TO_CHAR(SYSDATE , 'YYYY') FROM DUAL; -- 年 SELECT TO_CHAR(SYSDATE , 'MM') FROM DUAL; -- 月 SELECT T ...
  • 3.1 添加數據 ①為所有欄位添加數據 方法1:欄位包含全部定義的欄位 方法2:值必須與欄位定義順序一致 ②為部分欄位添加數據 欄位僅為定義欄位的部分欄位 ③同時添加多條記錄 註意: ①插入數據時,欄位列表與數據列表要一一對應。 ②插入數據的類型,需要與欄位設置的類型一致。數據應該不超出欄位的表示範 ...
  • 以下List是我們常見的MySQL參數配置,這個參數對提高實例的性能大有裨益。 其中 建議設置值,僅供參考,需要根據自己的業務場景和硬體資源仔細推敲。 重用保存在緩存中線程的數量:如果Threads_created值過大MySQL伺服器一直在創建線程,比較耗資源,可以適當增加配置文件中thread_ ...
  • 作用: 四捨五入 SELECT CAST('9.0' AS DECIMAL) FROM DUAL; -- 9 SELECT CAST('9.5' AS DECIMAL) FROM DUAL; -- 10 SELECT CAST('9.6' AS DECIMAL) FROM DUAL; -- 10 S ...
  • 啟動 查看redis.conf文件,可以通過general中的說明,配置通過systemd來啟停redis和查看redis狀態(作者沒有採用,而是使用service管理,service配置參考《02. Instal redis on Linux》) 這裡直接說通過service啟動命令: servi ...
  • redis-3.2.6配置文件 主要修改配置文件幾個大方面: 埠 port 安全: bind ip 綁定監聽IP 安全模式開啟與否 protected-mode 一般設置yes 訪問密碼 requirepass 如果設置了bind 127.0.0.1 本地訪問,那麼可以不設置密碼,如果是提供bin ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...