從redis官網下載Linux redis4.0.9版本,我下載的redis-4.0.9.tar.gz(目前最新穩定版),下載到/usr/local/src目錄,如果沒有就mkdir創建一個.
下載鏈接:https://redis.io/download
http://download.redis.io/releases/redis-4.0.9.tar.gz
############ 開始 ###############
################################## 1.安裝redis ######################################
將安裝包下載到此目錄
/usr/local/src
將redis安裝到此目錄
/usr/local/redis
安裝過程指令如下:
mkdir /usr/local/redis cd /usr/local/src tar xzf redis-4.0.9.tar.gz ln -s redis-4.0.9 redis #建立一個鏈接 cd redis make PREFIX=/usr/local/redis install #安裝到指定目錄中
start
上面的最后一行,我們通過PREFIX指定了安裝的目錄。如果make失敗,一般是你們系統中還未安裝gcc,那么可以通過yum安裝:
yum install gcc
安裝完成后,繼續執行make.
這里也可以執行更新yum
sudo yum update
end
在安裝redis成功后,你將可以在/usr/local/redis看到一個bin的目錄,里面包括了以下文件:
redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server
################################# 2.將redis做成一個服務並注冊 ################################
1.復制腳本到/etc/rc.d/init.d目錄
ps: /etc/rc.d/init.d/目錄下的腳本就類似與windows中的注冊表,在系統啟動的時候某些指定腳本將被執行
按以上步驟安裝Redis時,其服務腳本位於:
/usr/local/src/redis/utils/redis_init_script
必須將其復制到/etc/rc.d/init.d的目錄下:
cp /usr/local/src/redis/utils/redis_init_script /etc/rc.d/init.d/redis
將redis_init_script復制到/etc/rc.d/init.d/,同時易名為redis。
如果這時添加注冊服務:
chkconfig --add redis
將報以下錯誤:
redis服務不支持chkconfig
為此,我們需要更改redis腳本。
2.更改redis腳本
打開使用vi打開腳本,查看腳本信息:
vim /etc/rc.d/init.d/redis
看到的內容如下(下內容是更改好的信息):
1 #!/bin/sh 2 #chkconfig: 2345 80 90 3 # Simple Redis init.d script conceived to work on Linux systems 4 # as it does use of the /proc filesystem. 5 6 REDISPORT=6379 7 EXEC=/usr/local/redis/bin/redis-server 8 CLIEXEC=/usr/local/redis/bin/redis-cli 9 10 PIDFILE=/var/run/redis_${REDISPORT}.pid 11 CONF="/etc/redis/${REDISPORT}.conf" 12 13 case "$1" in 14 start) 15 if [ -f $PIDFILE ] 16 then 17 echo "$PIDFILE exists, process is already running or crashed" 18 else 19 echo "Starting Redis server..." 20 $EXEC $CONF & 21 fi 22 ;; 23 stop) 24 if [ ! -f $PIDFILE ] 25 then 26 echo "$PIDFILE does not exist, process is not running" 27 else 28 PID=$(cat $PIDFILE) 29 echo "Stopping ..." 30 $CLIEXEC -p $REDISPORT shutdown 31 while [ -x /proc/${PID} ] 32 do 33 echo "Waiting for Redis to shutdown ..." 34 sleep 1 35 done 36 echo "Redis stopped" 37 fi 38 ;; 39 *) 40 echo "Please use start or stop as first argument" 41 ;; 42 esac
和原配置文件相比(以下幾處都要更改,特別是第一個#chkconfig,否則會導致無法添加配置):
1.需要添加第二行內容如以上腳本中第二行:
#chkconfig: 2345 80 90
2.原文件EXEC、CLIEXEC參數,也是有所更改。
EXEC=/usr/local/redis/bin/redis-server
CLIEXEC=/usr/local/redis/bin/redis-cli
3.redis開啟的命令,以后台運行的方式執行。
$EXEC $CONF &
ps:注意后面的那個“&”,即是將服務轉到后面運行的意思,否則啟動服務時,Redis服務將
占據在前台,占用了主用戶界面,造成其它的命令執行不了。
4.將redis配置文件拷貝到/etc/redis/${REDISPORT}.conf
mkdir /etc/redis
cp /usr/local/src/redis/redis.conf /etc/redis/6379.conf
這樣,redis服務腳本指定的CONF就存在了。默認情況下,Redis未啟用認證,可以通過開啟6379.conf的requirepass 指定一個驗證密碼。
以上操作完成后,即可注冊yedis服務:
chkconfig --add redis
3.啟動redis服務
service redis start
######################## 3.將Redis的命令所在目錄添加到環境變量PATH中 ##############################
修改profile文件:
vi /etc/profile
在最后行追加:
export PATH="$PATH:/usr/local/redis/bi
應用這個文件
. /etc/profile
#################################### 4.設置redis密碼 #########################################
打開配置文件:# vi /etc/redis/6379.conf
vi /etc/redis/6379.conf
進入命令模式查找"requirepass"字符串,找到這一段,去掉前面的#號,后面密碼就自定義了(此處修改為-Tq8UA7zredis)
1 # Warning: since Redis is pretty fast an outside user can try up to 2 # 150k passwords per second against a good box. This means that you should 3 # use a very strong password otherwise it will be very easy to break. 4 # 5 requirepass -Tq8UA7zredis 6 7 8 # Command renaming. 9 # 10 # It is possible to change the name of dangerous commands in a shared 11 # environment. For instance the CONFIG command may be renamed into something 12 # hard to guess so that it will still be available for internal-use tools 13 # but not available for general clients.
要使配置生效可以重啟一下
##################################### 5.安裝完成,進入redis ####################################
這樣就可以直接調用redis-cli的命令了,如下所示:
redis-cli redis 127.0.0.1:6379> auth -Tq8UA7zredis OK redis 127.0.0.1:6379>
PS:可能需要防火牆將6379端口打開外部就能訪問了
解決問題redis問題:ERR Client sent AUTH, but no password is set
明明在redis.conf中設置了密碼,而且redis還啟動了,為什么說沒有密碼呢?
大家都知道linux下啟動redis有很多種方法,
其中有 ./redis-server &
這種方法啟動,不會帶上你的redis.conf配置文件啟動
還有 ./redis-server ../redis.conf
這種方法啟動的時候,會去帶上配置文件redis.conf
上面的問題 ERR Client sent AUTH, but no password is set 。我遇到過一次,原因是我大意了,我用了第一種方式啟動
這個時候redis是沒有密碼的,但是我的redis配置文件中配置了密碼,所以當我在set值的時候就報這個錯誤了。
所以如果你配置了redis.conf這個文件,那么啟動redis的時候也一定要帶上這個文件啟動。
那么解決問題就要先退出來
cd /usr/local/redis/bin
service redis stop
./redis-server
-bash: ./redis-server: 沒有那個文件或目錄 ,
經過搜索:
find / -name redis-server
/usr/local/redis/bin/redis-server
原來是能在當前bin的目錄下才能執腳本文件
cd /usr/local/redis/bin/
再次執行
成功顯示Redis信息