這幾天在搞redis數據庫,花了好大功夫,才成功安裝在Linux上,這里將自己的安裝步驟分享出來,同時也做個記錄,備忘。
新人一枚,不對之處,請多指教!
首先登陸Linux服務器
Linux里,我習慣將程序安裝在/usr/local 目錄下,所以先cd到該目錄下
- cd /usr/local
下載redis壓縮包(所有操作以回車進行,下同)
確認redis壓縮包是否下載成功,查看當前目錄下的所有文件
- ls -al
如果下載成功
- 解壓:tar xzf redis-5.0.5.tar.gz
- 查看是否解壓出了對應文件:ls -al
進入解壓出的目錄
- cd redis-5.0.5
安裝
- make
make完后,進入當前src 目錄下,會有redis服務端程序redis-server和用於測試的客戶端程序redis-cli,cd進src,並查看
- cd src
- ls -al
配置redis.conf文件,將redis設為后台運行
redis默認不是守護進程,也就是說只要在linux上做了其他操作、或者exit強制退出、或者關閉連接工具(putty/xshell)等,都會導致redis進程退出,這樣非常的麻煩,所以需要讓redis服務端在后台運行,即守護進程模式。當redis.conf配置文件中,daemonize屬性值設為yes時,代表開啟守護進程。
- 退回上級目錄:cd ..
- 創建etc文件夾(你不退回上級目錄也行,可以放到其他目錄,但為了便於管理,建議放到上級目錄中):mkdir /usr/local/redis-5.0.5/etc
- 查看是否創建成功:ls -al
將當前目錄下的redis.conf配置文件,復制到剛剛創建的etc文件里,並查看etc文件夾
- cp /usr/local/redis-5.0.5/redis.conf /usr/local/redis-5.0.5/etc
- ls -al
編輯etc文件夾里的redis.conf配置文件,將里面的daemonize no 改成daemonize yes,即將redis設為后台啟動
- vi redis.conf
按下斜杠/,然后輸入daemon,回車進行搜索,就會快速跳到需要修改的地方
輸入i,頁面會變成編輯模式
移動光標到no處,將no改成yes
然后按esc鍵退出編輯模式,再然后按shift+:(英文冒號),然后輸入wq,回車,就保存並退出了
設置連接redis數據庫的密碼(修改redis.conf文件)
redis數據庫默認不設密碼,但這樣會自動開啟保護模式,只能本地訪問,不能遠程訪問。所以為了能遠程訪問,就必須設置密碼。
跟上一步修改守護進程配置一樣,先進入redis.conf文件vi redis.conf
輸入/requirepass foobared,然后回車,找到設置密碼的地方#requirepass foobared
輸入i,進入編輯模式,在下面添加一行requirepass 123,設置訪問密碼為123,退出編輯模式、保存即可
啟動redis,並指定使用的配置文件
- /usr/local/redis-5.0.5/src/redis-server /usr/local/redis-5.0.5/etc/redis.conf
啟動成功后,查看redis是否在運行
- ps aux | grep redis
在/usr/local/redis-5.0.5/src目錄下啟動redis客戶端,測試和服務端的交互,啟動成功后,下面會出現IP地址和端口號:127.0.0.1:6397
- ./redis-cli -h 127.0.0.1 -p 6379 -a 123
這時候開始測試客戶端與服務端的交互
- 從客戶端輸入鍵值對:set name test,返回ok,表示添加成功
- 從客戶端獲取鍵值對:get name,返回值test
- 查看所有鍵值對:keys *
- 從客戶端刪除鍵值對:del name,返回1表示刪除成功,刪除失敗會返回0
至此,redis數據庫安裝成功,輸入quit或按Ctrl+c可退出客戶端模式
安裝成功后,可以在redis客戶端里,查看數據庫的所有配置信息
- 啟動redis客戶端:./redis-cli
- config get *
dbfilename:數據庫文件名,默認為dumo.rdb
requirepass:連接服務器的密碼,默認為空。設置密碼后,再連接服務器就必須輸入密碼。
logfile:數據庫日志的地址及文件名。
maxmemroy:redis可占用的最大內存,默認是0。如果不進行設置或默認0,64位系統表示不限制內存的使用,32位系統表示最多使用3GB內存。
timeout:客戶端閑置多少秒后關閉與服務器的連接,默認是0,代表禁止使用該功能,永不關閉。
port:數據庫使用的端口號
databases:當前redis服務器有16個數據庫。
maxclients:最大同時連接的客戶端數量。
daemonize:表示redis是否作為守護進程運行,默認為no,表示以非守護進程運行,改為yes后,以守護進程運行。(windows下不支持以非守護進程運行)
dir:數據庫工作目錄。
修改redis數據庫可占用的最大內存(重啟后會恢復,改conf文件重啟后就不會恢復)
- 先獲取當前可占用的最大內存(必須先獲取,再設置):config get maxmemory
- 設置可占用最大內存為300M(必須轉為byte):config set maxmemory 314572800 //也可以在redis.conf配置文件中修改
設置過期策略
設置了可占用的最大內存后,一般都要設置過期策略。因為當內存使用達到上限后,數據庫就會報錯:OOM command not allowed when used memory > ‘maxmemory’,所以需要設置過期策略,通過LRU算法(LRU是Least Recently Used 近期最少使用算法)來刪除部分key,釋放空間。
- 查看下當前過期策略的設置:config get maxmemory-policy
- 設置需要的過期策略:config set maxmemory-policy volatile-lru //也可以在redis.conf配置文件中修改
volatile-lru -> 根據LRU算法生成的過期時間來刪除。
volatile-random -> 根據過期設置來隨機刪除key。
volatile-ttl -> 根據最近過期時間來刪除(輔以TTL)
allkeys-lru -> 根據LRU算法刪除任何key。
allkeys->random -> 無差別隨機刪。
noeviction -> 誰也不刪,內存達到上限后,直接在寫操作時返回錯誤。(默認就是這個過期策略)
修改端口
查看redis數據庫狀態
- 查看所有相關狀態:info
- 查看內存使用狀態:info memory
關閉redis
- 進入/usr/local/redis-5.0.5/src目錄:cd /usr/local/redis-5.0.5/src
- 輸入:./redis-cli shutdown
卸載redis
- 刪除/usr/local/redis-5.0.5/etc下的配置文件redis.conf:rm -rf /usr/local/redis-5.0.5/etc/redis.conf //-rf表示不管文件夾下有沒有內容,強制刪除
- 刪除安裝文件夾:rm -rf /usr/local/redis-5.0.5
- 刪除下載的壓縮包:rm -rf /usr/local/redis-5.0.5.tar.gz
參考文檔:
1、https://blog.51cto.com/4687975/2148125
2、http://linux.zhizuobiao.com/linux-19051400034/