centOs 安裝redis,集羣

1、[root@localhost liu]# wget http://download.redis.io/redis-2.8.21.tar.gz
或者 wget http://download.redis.io/releases/redis-3.0.2.tar.gz

2、解壓  tar -zxvf redis-stable.tar.gz  

3、查看是否安裝了tcl    rpm -qa|grep tcl
      沒有則進行安裝 yum install -y tcl

4、進入 解壓後的目錄,make
      成功後,
      運行 make test 保證沒有錯誤

5、運行make install
      會把redis-benchmark  redis-check-aof  redis-check-dump  redis-cli  redis-sentinel  redis-server
      複製到usr/local/bin 目錄下
6、複製配置文件到 /etc 目錄下 cp redis.conf /etc




       5和 6 也可以替換爲
{     這邊就不make install 了,直接使用make好的文件
        usr/local/下創建 redis文件夾,複製可執行文件6個到目錄bin,配置到etc
        [root@localhost local]# mkdir -p redis/{etc,bin,var}
        下面配置文件 路徑則爲新的路徑
}

7、自己建立init.d腳本  進入 、/etc/init.d/目錄,建立新的redis文件
內容如下
###########################
#chkconfig: 2345 10 90
#description: Start and Stop redis
PATH=/usr/local/bin:/sbin:/usr/bin:/bin
REDISPORT=6379
EXEC=/usr/local/bin/redis-server
REDIS_CLI=/usr/local/bin/redis-cli
PIDFILE=/var/run/redis.pid
CONF="/etc/redis.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
if [ "$?"="0" ]
then
echo "Redis is running..."
fi
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE does not exist, process is not running"
else
PID=$(cat $PIDFILE)
echo "Stopping ..."
$REDIS_CLI -p $REDISPORT SHUTDOWN
while [ -x ${PIDFILE} ]
do
echo "Waiting for Redis to shutdown ..."
sleep 1
done
echo "Redis stopped"
fi
;;
restart|force-reload)
${0} stop
${0} start
;;
*)
echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2
exit 1
esac
##############################
保存,退出
    修改權限   chmod +x /etc/init.d/redis
    
    設置開機啓動 chkconfig redis on  //這是失敗的話,先把配置文件yes改爲no,設置了開機啓動,再改配置文件
    
      編輯配置文件 vim  redis.conf
 
daemonize no 改爲 yes # 是否後臺運行
port 6379 改爲 12002  # 端口
dir ./ 改爲 dir /data/redis_data 或者/www/redis_12002/  # 數據目錄


    啓動服務:service redis start
    停止服務:service redis stop
    配置防火牆打開對應的端口:
    vi /etc/sysconfig/iptables
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT
     重啓防火牆
service iptables restart



集羣 主從配置
Redis主從複製中一個主服務可以有多個從服務,一個從服務可以有多個從服務。
 
配置比較簡單,只需要更改redis.conf文件中的slaveof參數配置即可。
 
從服務器 slaveof參數的格式如:slaveof <masterip> <masterport>
 
如果master服務器設置有密碼則需要配置masterauth參數。
 
masterauth參數格式如:masterauth <master-password>

例如
主服務器(192.168.10.16:6379) 配置文件
添加  
requirepass liubo
bind  192.168.10.16

從服務器(192.168.10.25:6379) 配置文件
slaveof 192.168.10.16 6379  // 主服務器的ip,端口
masterauth liubo
bind  192.168.10.25
從服務其的寫功能是默認被關閉的,也不建議向從服務器寫數據的。
可以在應用中將Redis數據庫的客戶端讀寫進行合理的分離。
以使用keepalive來實現主的故障轉移功能

No route to host  可以暫時關閉防火牆  service iptables stop

客戶端遠程連接
用法:redis-cli [OPTIONS] [cmd [arg [arg ...]]]
 
-h <主機ip>,默認是127.0.0.1
 
-p <端口>,默認是6379
 
-a <密碼>,如果redis加鎖,需要傳遞密碼
 
--help,顯示幫助信息
 
通過對rendis-cli用法介紹,在101上連接103應該很簡單:
 
[root@xsf001 ~]# redis-cli -h 192.168.1.103 -p 6379
redis 192.168.1.103:6379>
101上對103設置個個string user.1.name=zhangsan
redis 192.168.1.103:6379> set user.1.name zhangsan
OK
看到ok,表明設置成功了。然後直接在103上登陸,看能不能獲取到這個值。


測試是否已啓動
# /usr/local/bin/redis-cli ping
 
性能測試
# /usr/local/bin/redis-benchmark
 
關閉服務
# /usr/local/bin/redis-cli -p 6379 shutdown
 
強制刷新數據到磁盤【Redis默認是異步寫入磁盤的】
# /usr/local/bin/redis-cli -p 6379 save


如果出現異常

異常一:

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。

 

 

在make成功以後,需要make test。在make test出現異常。

異常一:

couldn't execute "tclsh8.5": no such file or directory

異常原因:沒有安裝tcl

解決方案:yum install -y tcl


daemonize:是否以後臺daemon方式運行
pidfilepid文件位置
port:監聽的端口號
timeout:請求超時時間
loglevellog信息級別
logfilelog文件位置
databases:開啓數據庫的數量
save * *:保存快照的頻率,第一個*表示多長時間,第三個*表示執行多少次寫操作。在一定時間內執行一定數量的寫操作時,自動保存快照。可設置多個條件。
rdbcompression:是否使用壓縮
dbfilename:數據快照文件名(只是文件名,不包括目錄)
dir:數據快照的保存目錄(這個是目錄)
appendonly:是否開啓appendonlylog,開啓的話每次寫操作會記一條log,這會提高數據抗風險能力,但影響效率。
appendfsyncappendonlylog如何同步到磁盤(三個選項,分別是每次寫都強制調用fsync、每秒啓用一次fsync、不調用fsync等待系統自己同步)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章