[TOC]html
官網:https://redis.ioc++
下載:https://redis.io/downloadredis
➜ yum install -y gcc gcc-c++ kernel-devel
# 推薦在這個目錄存放各個軟件的源碼 ➜ cd /usr/local/src # 下載指定版本 ➜ wget http://download.redis.io/releases/redis-5.0.5.tar.gz # 下載最新穩定版 ➜ wget http://download.redis.io/redis-stable.tar.gz # 查看源碼具體版本 ➜ cat redis-stable/src/version.h
➜ tar zxvf redis-5.0.5.tar.gz ➜ cd redis-5.0.5 ➜ make # 安裝到指定目錄下 ➜ make PREFIX=/usr/local/redis-5.0.5 install # 拷貝默認配置文件到指定目錄 ➜ mkdir /usr/local/redis-5.0.5/etc ➜ cp redis.conf /usr/local/redis-5.0.5/etc/ # 建立程序軟連接,以便後期版本升級 cd /usr/local/ ln -s redis-5.0.5 redis # 配置環境變量,以便在全局使用 Redis 相關命令 ➜ echo 'export PATH="$PATH:/usr/local/redis/bin"' >> /etc/profile ➜ source /etc/profile # 驗證 ➜ redis-cli -v redis-cli 5.0.5
這裏只是一些推薦的經常使用基本配置,詳細的參見配置文件中對各個配置項的說明,或者參照這裏 https://www.runoob.com/redis/redis-conf.htmlvim
➜ cd /usr/local/redis/etc # 爲方便管理多個 Redis 服務,以版本號做爲配置文件的名稱後綴 ➜ mv redis.conf redis_6379.conf # 開始編輯配置文件 ➜ vi redis_6379.conf # -------------------- # 如下是經常使用配置項 # -------------------- # 開啓守護進程(後臺)方式運行 daemonize yes # 進程文件 pidfile /var/redis/run/redis_6379.pid # 只容許指定主機鏈接,默認不限制 bind 127.0.0.1 # 端口號 port 6379 # 客戶端閒置多長時間(單位:s)關閉鏈接 # 默認 0 ,無限制 timeout 300 # 本地持久化數據文件名 dbfilename dump_6379.rdb # 設置工做目錄 dir /var/redis/db/ # 日誌級別 # - debug 適用於開發、測試,打印的信息較多 # - verbose 比 debug 簡潔一些 # - notice 默認,普通的 verbose,用於生產環境 # - warning 警告和一些比較嚴重的信息 loglevel notice # 日誌文件 # 默認爲空字符串,表示標準輸出(stdout) # 若是以守護進程運行,而且此處採用標準輸出,則日誌發送給 /dev/null logfile /var/redis/log/redis_6379.log # 客戶端鏈接密碼 # 爲保證服務安全,建議開啓並設置一個複雜的密碼 requirepass pwd2019 # -------------------- # 保存上面修改好的配置文件 # -------------------- # 建立配置中不存在的目錄 ➜ mkdir -p /var/redis/{run,log,db}
基本啓動方式安全
# 以默認配置啓動 ➜ redis-server # 指定配置文件 ➜ redis-server /usr/local/redis/etc/redis_6379.conf # 查看更多使用參數 ➜ redis-server -h # 客戶端鏈接測試 ➜ redis-cli 127.0.0.1:6379> KEYS * (error) NOAUTH Authentication required. 127.0.0.1:6379> auth pwd2019 OK 127.0.0.1:6379> KEYS * (empty list or set) 127.0.0.1:6379> exit ➜
使用腳本啓動bash
➜ cd /usr/local/src/redis-5.0.5/utils/ ➜ cp redis_init_script /etc/init.d/ ➜ cd /etc/init.d/ ➜ mv redis_init_script redis_6379 ➜ vim redis_6379
#!/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 REDISPWD=pwd2019 EXEC=/usr/local/redis/bin/redis-server CLIEXEC=/usr/local/redis/bin/redis-cli PIDFILE=/var/run/redis_${REDISPORT}.pid CONF="/usr/local/redis/etc/redis_${REDISPORT}.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 ..." if [ -n $REDISPWD ]; then $CLIEXEC -p $REDISPORT -a $REDISPWD shutdown else $CLIEXEC -p $REDISPORT shutdown fi 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
使用腳本啓動服務測試ide
➜ ./redis_6379 start # 檢查是否啓動成功 ➜ ps -ef | grep redis root 19262 1 0 01:42 ? 00:00:00 /usr/local/redis/bin/redis-server 127.0.0.1:6379 root 19267 19129 0 01:43 pts/0 00:00:00 grep --color=auto redis # 客戶端鏈接測試 ➜ redis-cli 127.0.0.1:6379> KEYS * (error) NOAUTH Authentication required. 127.0.0.1:6379> auth pwd2019 OK 127.0.0.1:6379> KEYS * (empty list or set) 127.0.0.1:6379> exit ➜ # 中止服務 ➜ ./redis_6379 stop
# 使用 root 用戶操做 # 添加到自啓動列表 # 這裏的 redis_6379 與 /etc/init.d/redis_6379 文件名保持一致 ➜ chkconfig --add redis_6379 # 將 2 3 4 5 級別設置爲自啓動 ➜ chkconfig --level 2345 redis_6379 on # 檢查是否設置成功 ➜ chkconfig --list | grep redis # 重啓檢查自啓動是否生效 ➜ reboot
在 CentOS7+ 建議使用 systemctl
命令對 Redis 服務進行統一管理,以下:測試
# 查看服務狀態 ➜ systemctl status redis_6379 ● redis_6379.service - LSB: Redis data structure server Loaded: loaded (/etc/rc.d/init.d/redis_6379; bad; vendor preset: disabled) Active: active (running) since Mon 2019-11-11 02:21:03 UTC; 3s ago Docs: man:systemd-sysv-generator(8) Process: 1042 ExecStop=/etc/rc.d/init.d/redis_6379 stop (code=exited, status=0/SUCCESS) Process: 1056 ExecStart=/etc/rc.d/init.d/redis_6379 start (code=exited, status=0/SUCCESS) CGroup: /system.slice/redis_6379.service └─1058 /usr/local/redis/bin/redis-server 127.0.0.1:6379 Nov 11 02:21:03 cnetos7-localhost systemd[1]: Starting LSB: Redis data structure server... Nov 11 02:21:03 cnetos7-localhost redis_6379[1056]: Starting Redis server... Nov 11 02:21:03 cnetos7-localhost redis_6379[1056]: 1057:C 11 Nov 2019 02:21:03.594 # oO0OoO0OoO0Oo Re...0Oo Nov 11 02:21:03 cnetos7-localhost redis_6379[1056]: 1057:C 11 Nov 2019 02:21:03.594 # Redis version=5....ted Nov 11 02:21:03 cnetos7-localhost redis_6379[1056]: 1057:C 11 Nov 2019 02:21:03.594 # Configuration loaded Nov 11 02:21:03 cnetos7-localhost systemd[1]: Started LSB: Redis data structure server. Hint: Some lines were ellipsized, use -l to show in full. # 啓動服務 ➜ systemctl start redis_6379 # 關閉服務 ➜ systemctl stop redis_6379