版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。 https://blog.csdn.net/SunnyYoona/article/details/72828391
在安裝Redis前需要了解Redis的版本規則以選擇最合适自己的版本,Redis約定次版本(即第一個小數點後的數字)為偶數的版本是穩定版本(如 2.4版本,2.6版本),奇數版本是非穩定版本(如2.5版本,2.7版本),推薦使用穩定版本進行開發和在生産環境中使用.
1. 下載下傳 http://gitlab.corp.qunar.com/jifeng.si/learningnotes/blob/master/IT/%E5%A4%A7%E6%95%B0%E6%8D%AE/Redis/%5BRedis%5DRedis%E6%8C%87%E5%8D%97%E4%B8%80%20%E5%AE%89%E8%A3%85%E4%B8%8E%E5%90%AF%E5%8A%A8.md#1
目前最新版本為3.2.9:
官網下載下傳:
https://redis.io/中文官網下載下傳:
http://www.redis.cn/download.html2. 安裝 http://gitlab.corp.qunar.com/jifeng.si/learningnotes/blob/master/IT/%E5%A4%A7%E6%95%B0%E6%8D%AE/Redis/%5BRedis%5DRedis%E6%8C%87%E5%8D%97%E4%B8%80%20%E5%AE%89%E8%A3%85%E4%B8%8E%E5%90%AF%E5%8A%A8.md#2
解壓縮檔案到指定目錄:
tar -zxvf redis-3.2.9.tar.gz -C opt/
進入解壓之後的目錄,進行編譯
cd opt/redis-3.2.9/
make
看到如下資訊,表示可以繼續下一步:
CC redis-check-rdb.o
CC geo.o
LINK redis-server
INSTALL redis-sentinel
CC redis-cli.o
LINK redis-cli
CC redis-benchmark.o
LINK redis-benchmark
INSTALL redis-check-rdb
CC redis-check-aof.o
LINK redis-check-aof
Hint: It's a good idea to run 'make test' ;)
make[1]: Leaving directory '/home/xiaosi/opt/redis-3.2.9/src'
二進制檔案編譯完成後在src目錄下,進入src目錄之後進行安裝操作:
xiaosi@yoona:~/opt/redis-3.2.9/src$ sudo make install
Hint: It's a good idea to run 'make test' ;)
INSTALL install
INSTALL install
INSTALL install
INSTALL install
INSTALL install
備注
一般情況下,在Ubuntu系統中,都是需要使用sudo提升權限
在安裝成功之後,可以運作測試,确認Redis的功能是否正常:
make test
看到如下資訊,表示Redis已經安裝成功:
\o/ All tests passed without errors!
Cleanup: may take some time... OK
3. 啟動 http://gitlab.corp.qunar.com/jifeng.si/learningnotes/blob/master/IT/%E5%A4%A7%E6%95%B0%E6%8D%AE/Redis/%5BRedis%5DRedis%E6%8C%87%E5%8D%97%E4%B8%80%20%E5%AE%89%E8%A3%85%E4%B8%8E%E5%90%AF%E5%8A%A8.md#3
安裝完Redis後的下一步就是啟動它,下面将介紹在開發環境和生産環境中運作Redis的方法以及正确停止Redis的步驟.在這之前,我們先了解Redis包含的可執行檔案都有哪些,如下表:
檔案名你 | 說明 |
---|---|
redis-server | Redis伺服器 |
redis-cli | Redis指令行用戶端 |
redis-benchmark | Redis性能測試工具 |
redis-check-aof | AOF檔案修複工具 |
我們最常使用的兩個程式是redis-server 和 redis-cli,其中redis-server 是 Redis的伺服器,啟動Redis即運作它;而redis-cli是Redis自帶的Redis指令行用戶端.
3.1 啟動Redis http://gitlab.corp.qunar.com/jifeng.si/learningnotes/blob/master/IT/%E5%A4%A7%E6%95%B0%E6%8D%AE/Redis/%5BRedis%5DRedis%E6%8C%87%E5%8D%97%E4%B8%80%20%E5%AE%89%E8%A3%85%E4%B8%8E%E5%90%AF%E5%8A%A8.md#3-1-redis
啟動Redis有直接啟動和通過初始化腳本啟動兩種方式,分别适用于開發環境和生産環境.
3.1.1 直接啟動 http://gitlab.corp.qunar.com/jifeng.si/learningnotes/blob/master/IT/%E5%A4%A7%E6%95%B0%E6%8D%AE/Redis/%5BRedis%5DRedis%E6%8C%87%E5%8D%97%E4%B8%80%20%E5%AE%89%E8%A3%85%E4%B8%8E%E5%90%AF%E5%8A%A8.md#3-1-1
直接運作redis-server即可啟動Redis:
xiaosi@yoona:~$ redis-server
11657:C 30 May 21:52:39.810 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
11657:M 30 May 21:52:39.813 * Increased maximum number of open files to 10032 (it was originally set to 1024).
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 3.2.9 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 11657
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
11657:M 30 May 21:52:39.815 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
11657:M 30 May 21:52:39.815 # Server started, Redis version 3.2.9
11657:M 30 May 21:52:39.815 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
11657:M 30 May 21:52:39.815 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
11657:M 30 May 21:52:39.815 * The server is now ready to accept connections on port 6379
Redis伺服器預設使用6379端口,通過--port參數可以自定義端口号:
redis-server --port 6390
3.1.2 通過初始化腳本啟動Redis http://gitlab.corp.qunar.com/jifeng.si/learningnotes/blob/master/IT/%E5%A4%A7%E6%95%B0%E6%8D%AE/Redis/%5BRedis%5DRedis%E6%8C%87%E5%8D%97%E4%B8%80%20%E5%AE%89%E8%A3%85%E4%B8%8E%E5%90%AF%E5%8A%A8.md#3-1-2-redis
在Linux系統中可以通過初始化腳本啟動Redis,使得Redis能随系統自動運作,在生産環境中推薦使用此方法運作Redis.在Redis源代碼目錄的utils檔案夾中有一個名為redis-init-script的初始化腳本檔案,内容如下:
#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
REDISPORT=6379
EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli
PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/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 ..."
$CLIEXEC -p $REDISPORT shutdown
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
我們需要配置Redis的運作方式和持久化檔案,日志檔案的存儲位置等,具體步驟如下:
(1) 配置初始化腳本 首先将初始化腳本複制到/etc/init.d目錄下,檔案名為redis_端口号,其中端口号表示要讓Redis監聽的端口号,用戶端通過該端口連接配接Redis:
xiaosi@yoona:~/opt/redis-3.2.9/utils$ sudo cp redis_init_script /etc/init.d/
xiaosi@yoona:/etc/init.d$ sudo mv redis_init_script redis_6379
然後修改第六行的REDISPORT變量的值為同樣的端口号
REDISPORT=6379
(2) 建立需要的檔案夾
建立如下表列出的目錄:
目錄名 | |
---|---|
/etc/redis | 存放Redis的配置檔案 |
/var/redis/端口号 | 存放Redis的持久化檔案 |
xiaosi@yoona:~$ sudo mkdir /etc/redis
xiaosi@yoona:~$ sudo mkdir /var/redis
xiaosi@yoona:~$ sudo mkdir /var/redis/6379
(3) 修改配置檔案
首先将配置檔案模闆複制到/etc/redis目錄中,以端口号命名(例如,"6379.conf"),然後按照下标對其中的部分參數進行編輯:
xiaosi@yoona:~/opt/redis-3.2.9$ sudo cp redis.conf /etc/redis/
xiaosi@yoona:/etc/redis$ sudo mv redis.conf 6379.conf
參數 | 值 | |
---|---|---|
daemonize | yes | 使Redis以守護程序模式運作 |
pidfile | /var/run/redis_端口号.pid | 設定Redis的PID檔案位置 |
port | 端口号 | 設定Redis監聽的端口号 |
dir | 設定持久化檔案存放位置 |
現在就可以使用/etc/init.d/redis_端口号 start 來啟動Redis,而後需要執行下面的指令使Redis随系統自動啟動:
sudo update-rc.d redis_端口号 defaults
3.2 用戶端 http://gitlab.corp.qunar.com/jifeng.si/learningnotes/blob/master/IT/%E5%A4%A7%E6%95%B0%E6%8D%AE/Redis/%5BRedis%5DRedis%E6%8C%87%E5%8D%97%E4%B8%80%20%E5%AE%89%E8%A3%85%E4%B8%8E%E5%90%AF%E5%8A%A8.md#3-2
可以使用内置的用戶端指令redis-cli進行使用:
xiaosi@yoona:~$ redis-cli
127.0.0.1:6379>
在上面的提示中,127.0.0.1是計算機的IP位址,6379是運作Redis伺服器的端口。現在鍵入以下PING指令:
127.0.0.1:6379> ping
PONG
這表明Redis已成功在您的計算機上安裝了。
3.3 停止Redis http://gitlab.corp.qunar.com/jifeng.si/learningnotes/blob/master/IT/%E5%A4%A7%E6%95%B0%E6%8D%AE/Redis/%5BRedis%5DRedis%E6%8C%87%E5%8D%97%E4%B8%80%20%E5%AE%89%E8%A3%85%E4%B8%8E%E5%90%AF%E5%8A%A8.md#3-3-redis
考慮到Redis有可能正在将記憶體中的資料同步到磁盤中,強行終止Redis程序可能會導緻資料丢失.正确停止Redis的方式應該是向Redis發送SHUTDOWN指令,方法為:
redis-cli SHUTDOWN
當redis收到SHUTDOWN指令後,會先斷開所有用戶端連接配接,然後根據配置執行持久化,最後完成退出.
來自于<Redis入門指南>