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下搭建主从复制

 

 

其它模式还没有搞。

哨兵模式

集群模式