下載安裝包
到 index of /releases/ 下載對應版本
安裝準備
- 安裝運行環境
yum install gcc-c++ - 解壓
tar -zxvf redis-5.0.5.tar.gz
我放在了根目錄 -
編譯
進入解壓的文件夾,執行 make 命令cd redis5.0.5 make MALLOC=libc -
安裝
配置信息
- 配置初始化腳本
首先將初始化腳本 (Redis源代碼目錄的utils文件夾中有一個名為redis_init_script)
複製到/etc/init.d目錄中,文件名為redis_端口號,然後修改腳本第6行的REDISPORT變量的值為同樣的端口號。
- 建立需要的文件夾
| 目錄名 | 説明 |
|---|---|
| /etc/redis | 存放 Redis 的配置文件 |
| /var/redis/端口號 | 存放 Redis 的持久化文件 |
- 修改配置文件
將 redis.conf 複製到 /etc/redis 目錄下,以端口號命名(6379.conf),然後進行參數配置。
- 將 redis 做成一個服務
-
複製腳本到
/etc/rc.d/init.d目錄,命令如下:cp /redis-5.0.5/utils/redis_init_script /etc/rc.d/init.d -
切換到/etc/rc.d/init.d目錄下,命令如下:
cd /etc/rc.d/init.d -
重命名redis_init_script為redis,命令如下:
mv redis_init_script redis -
更改redis的服務腳本,命令如下:
vi redis -
更改redis開啓的命令,以後台運行的方式執行
注意後面的那個“&”,即是將服務轉到後面運行的意思,否則啓動服務時,Redis服務將佔據在前面,佔用了主用户界面,造成其它的命令執行不了。$EXEC $CONF & # 以上操作完成後,註冊服務 chkconfig --add redis
-
Redis 隨系統自啓動
chkconfig redis on -
啓動 Redis
/etc/init.d/redis_6379 start
啓動 Redis 服務
本節將分別介紹在開發環境和生產環境中運行Redis的方法以及正確停止Redis的步驟。
在這之前首先需要了解Redis包含的可執行文件都有哪些。
如果在編譯後執行了make install 命令,這些程序會被複制到 /usr/local/bin目錄內,所以在命令行中直接輸入程序名稱即可行。
-
直接啓動
redis-server --port 6379 redis-cli - 初始化腳本啓動 Redis
如上面所示 - Redis 命令行客户端
-
發送命令
redis-cli -h 127.0.0.1 -p 6379 # 測試客户端與 Redis 連接是否正常 redis-cli ping > PONG
- 配置
Redis 支持其他配置選項,如是否開啓持久化、日誌級別等。
由於可以配置的選項較多,通過啓動參數設置這些選項並不方便,所以Redis支持通過配置文件來設置這些選項。
啓用配置文件的方法是在啓動時將配置文件的路徑作為啓動參數傳遞給redis-server,如:
redis-server /path/to/redis.conf
通過啓動參數傳遞同名的配置選項會覆蓋配置文件中相應的參數,如下述所示:
redis-server /path/to/redis.conf --loglevel warning
Redis 提供了一個配置文件的模板redis.conf,位於源代碼目錄的根目錄中。
除此之外,還可以在 Redis 運行時通過CONFIG SET 命令在不重新啓動 Redis 的情況下動態修改部分 Redis 配置(同樣的 config get 動態獲取配置信息)。如下述所示:
CONFIG SET loglevel warning
不是所有的配置都可以動態修改
- 多數據庫
每個數據庫對外都是以一個從0開始的遞增數字命名,Redis默認支持16個數據庫,可以通過配置參數databases來修改這一數字。客户端與Redis建立連接後會自動選擇0號數據庫,不過可以隨時使用SELECT命令更換數據庫,如要選擇1號數據庫:
select 1
首先 Redis 不支持自定義數據庫的名字,每個數據庫都以編號命名,不支持為每個數據庫設置不同的訪問密碼。
最重要的一點是多個數據庫之間並不是完全隔離的,比如 FLUSHALL 命令可以清空一個 Redis 實例中所有數據庫中的數據。
綜上所述,這些數據庫更像是一種命名空間,而不適宜存儲不同應用程序的數據。
比如可以使用 0 號數據庫存儲某個應用生產環境中的數據,使用 1 號數據庫存儲測試環境中的數據,但不適宜使用 0 號數據庫存儲 A 應用的數據而使用 1 號數據庫存儲 B 應用的數據,不同的應用應該使用不同的 Redis 實例存儲數據。
由於Redis非常輕量級,一個空Redis實例佔用的內存只有1MB左右,所以不用擔心多個Redis實例會額外佔用很多內存。