天天看點

Redis在Centos下搭建主從複制

1.安裝虛拟機 VM

2.安裝Centos7(必看)

https://blog.csdn.net/mtm001/article/details/103231135

安裝jdk(以後用,可略過)

https://blog.csdn.net/mtm001/article/details/103231142

安裝Tomcat(可略過)

https://blog.csdn.net/mtm001/article/details/103231147

3.環境配置

安裝步驟  注意:紅色字是執行的指令,可直接複制使用

1.上傳、解壓、更名

上傳到:/soft/redis

解壓:

目前目錄:
cd /soft/redis
tar -zxvf redis-4.0.9.tar.gz
ls -l      

結果如下

drwxrwxr-x. 6 root root    4096 3月  27 2018 redis-4.0.9
-rw-r--r--. 1 root root 1737022 7月  23 2019 redis-4.0.9.tar.gz      

改名

mv redis-4.0.9  redis      

檢視

 ls -l

drwxrwxr-x. 6 root root    4096 3月  27 2018 redis
-rw-r--r--. 1 root root 1737022 7月  23 2019 redis-4.0.9.tar.gz      

進入redis

cd redis      

2.編譯(make)和安裝(install)

yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel      

載後再執行一次上面的指令,會得到如下提示,說明安裝成功 已加載插件:fastestmirror Loading mirror speeds from cached hostfile

  • base: mirrors.aliyun.com
  • extras: mirrors.aliyun.com
  • updates: mirrors.aliyun.com 軟體包 gcc-4.8.5-39.el7.x86_64 已安裝并且是最新版本 軟體包 zlib-1.2.7-18.el7.x86_64 已安裝并且是最新版本 軟體包 zlib-devel-1.2.7-18.el7.x86_64 已安裝并且是最新版本 軟體包 pcre-devel-8.32-17.el7.x86_64 已安裝并且是最新版本 軟體包 1:openssl-1.0.2k-19.el7.x86_64 已安裝并且是最新版本 軟體包 1:openssl-devel-1.0.2k-19.el7.x86_64 已安裝并且是最新版本 無須任何處理
make && make install      

最後看到

Hint: It's a good idea to run 'make test' ;)
​
    INSTALL install
    INSTALL install
    INSTALL install
    INSTALL install
    INSTALL install
make[1]: 離開目錄“/soft/redis/redis/src”
[[email protected] redis]#       

檢視時,已經安裝在/soft/redis/redis檔案夾中

如果安裝時想更改目錄:跳過,我不用這個

make install PREFIX=/usr/local/redis      

3.配置(修改redis.conf檔案) 查找 先按esc鍵,再輸入 /關鍵字 n查找下一個 N查找上一個

vi redis.conf
#bind 127.0.0.1 # 将這行代碼注釋,監聽所有的ip位址,外網可以通路
protected-mode no # 把yes改成no,允許外網通路
daemonize yes # 把no改成yes,背景運作      

4.設定開機啟動

建立一個檔案,用于開機啟動參數配置(可能用vi代替, 如果沒有vim也可以yum install vim進安裝)

vi /etc/init.d/redis      

注意檔案下面的内容,需要修改(這裡可以看下,後面給出了全内容,直接複制過去)

​
EXEC=/usr/local/bin/redis-server # 執行腳本的位址
​
REDIS_CLI=/usr/local/bin/redis-cli # 用戶端執行腳本的位址
​
PIDFILE=/var/run/redis.pid # 程序id檔案位址
​
CONF="/usr/local/src/redis-3.0.2/redis.conf" #配置檔案位址      

完整的代碼(直接複制過去,注意開頭部分,有時候被吃掉,要自己補起)

#!/bin/sh
# chkconfig:   2345 90 10
# description:  Redis is a persistent key-value database
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="/soft/redis/redis/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 755 /etc/init.d/redis      

啟動測試

/etc/init.d/redis start      
Starting Redis server...
7259:C 23 May 09:48:54.309 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
7259:C 23 May 09:48:54.309 # Redis version=4.0.9, bits=64, commit=00000000, modified=0, pid=7259, just started
7259:C 23 May 09:48:54.309 # Configuration loaded
Redis is running...
      

通過用戶端(C/S)來進行通路,出現以下内容代表成功

[[email protected] redis]# cd /usr/local/bin/
[[email protected] bin]# ./redis-cli 
127.0.0.1:6379> set username admin
127.0.0.1:6379> get username 
"admin"
      
Redis在Centos下搭建主從複制

叢集版搭前奏

1.安裝gcc

yum install gcc-c++      

2.安裝ruby(搭建叢集版用到)

 yum install centos-release-scl-rh    //會在/etc/yum.repos.d/目錄下多出一個CentOS-SCLo-scl-rh.repo源

yum install rh-ruby23 -y    //直接yum安裝即可  

scl enable rh-ruby23 bash    //必要一步

ruby -v    //檢視安裝版本 不然會報錯 ruby版本要>=2.3

yum install ruby
yum install rubygems      

3.安裝redis-trib.rb運作依賴的ruby包(搭建叢集版用到)

gem install redis      

弄兩台,可以用克隆

Redis在Centos下搭建主從複制

主從複制

主,我的是192.168.93.100   

确定在 cd /soft/redis/redis下

vi redis.conf

找到bind,本來是 bind 127.0.0.1

bind 0.0.0.0

port 6379

從,我的是192.168.93.101   

vi redis.conf

bind 192.168.93.101  #寫自己的位址

281 # slaveof <masterip> <masterport>

slaveof 192.168.93.100 6379

重新開機兩台伺服器

登入主伺服器:

cd /soft/redis/redis/

redis-cli

[[email protected] redis]# cd /usr/local/bin/

[[email protected] bin]# ./redis-cli

127.0.0.1:6379> set test admin

用 windows用戶端工具檢視,發現可以同步的。

Redis在Centos下搭建主從複制

也可以從主登入到從:說沒有設定權限

Redis在Centos下搭建主從複制

但是有查的權限的

Redis在Centos下搭建主從複制

我從從那裡登不進呢

Redis在Centos下搭建主從複制

其它模式還沒有搞。

哨兵模式

叢集模式