macbook 原始碼安裝 redis

posidon20200203發表於2021-11-07
  • 此時建立 /usr/local/redis-6.2.6 目錄,然後建立軟連線 /usr/local/redis 到該目錄:
      cd /usr/loca/
      sudo mkdir redis-6.2.6
      sudo ln -sf redis-6.2.6 redis
      sudo chown -R dongling:staff redis-6.2.6 redis # 將目錄owner修改為當前使用者,是為了當前使用者能夠讀寫該目錄,之後當前使用者可以直接將 redis 安裝到這裡
  • 解壓後,進入 redis-6.2.6 目錄。執行如下命令,檢視編譯步驟會如何執行

      [21:12:28 dongling@noah redis-6.2.6]106$ make -n
      cd src && /Library/Developer/CommandLineTools/usr/bin/make all
      /bin/sh: pkg-config: command not found
      echo ""
      echo "Hint: It's a good idea to run 'make test' ;)"
      echo "" 

    可以看到,命令列會進入 src 目錄執行編譯命令。在 src 目錄下,果然找到一個 Makefile。開啟 src/Makefile,可以看到結尾的 install 命令如下:

      install: all
          @mkdir -p $(INSTALL_BIN)
          $(call MAKE_INSTALL,$(REDIS_SERVER_NAME),$(INSTALL_BIN))
          $(call MAKE_INSTALL,$(REDIS_BENCHMARK_NAME),$(INSTALL_BIN))
          $(call MAKE_INSTALL,$(REDIS_CLI_NAME),$(INSTALL_BIN))
          @ln -sf $(REDIS_SERVER_NAME) $(INSTALL_BIN)/$(REDIS_CHECK_RDB_NAME)
          @ln -sf $(REDIS_SERVER_NAME) $(INSTALL_BIN)/$(REDIS_CHECK_AOF_NAME)
          @ln -sf $(REDIS_SERVER_NAME) $(INSTALL_BIN)/$(REDIS_SENTINEL_NAME)
    
      uninstall:
          rm -f $(INSTALL_BIN)/{$(REDIS_SERVER_NAME),$(REDIS_BENCHMARK_NAME),$(REDIS_CLI_NAME),$(REDIS_CHECK_RDB_NAME),$(REDIS_CHECK_AOF_NAME),$(REDIS_SENTINEL_NAME)}

    可以知道 make install 命令會把檔案安裝到 $(INSTALL_BIN) 這個目錄下。其定義如下:

      PREFIX?=/usr/local
      INSTALL_BIN=$(PREFIX)/bin
      INSTALL=install
      PKG_CONFIG?=pkg-config

    src/Makefile中的變數INSTALL_BIN 修改為 INSTALL_BIN=$(PREFIX)/redis,這樣就可以將redis安裝到我們想要的 /usr/local/redis 目錄下了。

  • 編譯並安裝
    回到 redis-6.2.6 原始碼目錄,執行如下命令:

    make  # 編譯
    make install # 安裝

    並將 redis-6.2.6/redis.conf 檔案 copy 到 /usr/local/redis/conf 目錄

    redis.conf 中的配置項做如下修改:

    daemonize yes # 啟動的 redis-server 會以後臺守護程式的方式執行
    ### ...
    dir /usr/local/redis/data # 將資料目錄指定在固定的位置
    ### ....
    appendonly yes # 開啟appendonly 持久化

    這樣,redis-server 會以後臺守護程式的方式執行;生成的 dump.rdb 和 appendonly.aof 檔案會固定放置在 /usr/local/redis/data 目錄。

  • 修改配置檔案 ~/.bashrc,將redis目錄新增到PATH環境變數中

    REDIS_HOME=/usr/local/redis
    export PATH=$PATH:$REDIS_HOME
    alias startredis='redis-server ${REDIS_HOME}/conf/redis.conf'
    alias redis='redis-cli'

    環境變數生效後,直接在命令列執行 startredis 即可啟動redis-server;
    在命令列執行 redis 即可使用客戶端連線 redis-server

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章