從github上下載redis原始碼:github.com/redis/redis
切換到 6.0 分支,編譯不通過。於是從 redis.io 下載原始碼: download.redis.io/releases/redis-6...
執行如下命令獲取原始碼
cd /usr/local/src wget https://download.redis.io/releases/redis-6.2.6.tar.gz
該版本的原始碼編譯正常。
- 此時建立
/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 協議》,轉載必須註明作者和本文連結