Linux下安裝 Redis
1、wget http://download.redis.io/redis-stable.tar.gz
2、tar xvzf redis-stable.tar.gz
3、cd redis-stable
4、make
前面3步應該沒有問題,主要的問題是執行make的時候,出現了異常。
異常一:
make[2]: cc:Command not found
異常原因:沒有安裝gcc
解決方案:yum install gcc-c++
異常二:
zmalloc.h:51:31:error: jemalloc/jemalloc.h: No such file or directory
異常原因:一些編譯依賴或原來編譯遺留出現的問題
解決方案:make distclean。清理一下,然後再make。
在mke成功以後,需要make test。在make test出現異常。
異常一:
couldn't execute"tclsh8.5": no such file or directory
異常原因:沒有安裝tcl
解決方案:yum install -y tcl。
在make成功以後,會在src目錄下多出一些可執行文件:redis-server,redis-cli等等
1.Redis配置(單機)
方便後期使用,可以用cp命令複製到usr目錄下運行。
cd src
cp redis-server/usr/local/bin/
cp redis-cli/usr/local/bin/
然後新建目錄,存放配置文件
mkdir /etc/redis
mkdir /var/redis
mkdir/var/redis/log
mkdir/var/redis/run
mkdir/var/redis/6379
在redis解壓根目錄中找到配置文件模板,複製到如下位置。
cd ..
cp redis.conf/etc/redis/6379.conf
通過vi命令修改
vi/etc/redis/6379.conf
改動爲如下內容:
daemonize yes
pidfile/var/redis/run/redis_6379.pid
logfile/var/redis/log/redis_6379.log
最後運行redis:
使用指定配置文件啓動
$/usr/local/redis-stable/src/redis-server /etc/redis/6379.conf
將Redis作爲 Linux 服務隨機啓動
vi /etc/rc.local,使用vi編輯器打開隨機啓動配置文件,並在其中加入下面一行代碼。
/usr/local/redis-stable/src/redis-server/etc/redis/6379.conf
2.redis配置(集羣:一主兩從三哨兵)
參考文檔:
yum -y install gcc-c++ tcl
tar xvzf redis-2.8.3.tar.gz -C /usr/local/
cd /usr/local/redis-2.8.3/
make
(若失敗運行make distclean,然後make MALLOC=libc)
成功後:make test
然後:make install(拷貝編譯好的文件到/usr/local/bin/)
mkdir /etc/redis; mkdir -pv /var/redis/{log,run,6379,sentinel}
!!!!不要安裝3.2.0 3.2.1等高版本,sentinel bug多,無法正常failover !!!!
=====================================================================================
主redis:
port 6379
daemonize yes
bind 0.0.0.0
logfile "/var/redis/log/sentinel.log"
pidfile "/var/run/redis.pid"
dir "/var/redis/6379"
slave-read-only yes
appendonly no
從redis:
port 6379
daemonize yes
bind 0.0.0.0
logfile "/var/redis/log/sentinel.log"
pidfile "/var/run/redis.pid"
dir "/var/redis/6379"
slave-read-only yes
appendonly no
slaveof 192.168.16.121 6379
哨兵:
port 26379
daemonize yes
dir "/var/redis/sentinel/
logfile "/var/redis/log/sentinel.log"
sentinel monitor mymaster 192.168.16.121 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 10000
sentinel parallel-syncs mymaster 1
開機啓動:
redis-server /etc/redis/redis.conf 啓動redis服務
redis-server /etc/redis/sentinel.conf --sentinel 啓動哨兵
常用命令:
redis-cli -p 6379 進入redis命令行
redis-cli -p 26379 進入sentinel命令行
進入命令行後用info在命令行下查看各信息
redis-cli -p 6379 DEBUG sleep 30 測試server下線30秒的高可用情況
============================================================================
構架圖:
+----+
| M1 |
| S1 |
+----+
|
+----+ | +----+
| R2 |----+----| R3 |
| S2 | | S3 |
+----+ +----+
Masters are called M1, M2, M3, ..., Mn.
Slaves are called R1, R2, R3, ..., Rn (R stands for replica).
Sentinels are called S1, S2, S3, ..., Sn.
M1:ip=192.168.16.121,port=6379
R2:ip=192.168.16.122,port=6379
R3:ip=192.168.16.123,port=6379
3.redis服務端常用命令
redis開啓:/usr/redis/src/redis-server /usr/redis/redis.conf
redis關閉:/usr/redis/src/redis-cli -h 127.0.0.1 -p 6379 shutdown
redis狀態查看:/usr/redis/src/redis-cli