Redis在Centos下搭建主从复制

    技术2022-07-21  71

    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” [root@localhost 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)来进行访问,出现以下内容代表成功

    [root@localhost redis]# cd /usr/local/bin/ [root@localhost bin]# ./redis-cli 127.0.0.1:6379> set username admin 127.0.0.1:6379> get username "admin"

    集群版搭前奏

    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

    弄两台,可以用克隆

    主从复制

    主,我的是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

    [root@localhost redis]# cd /usr/local/bin/

    [root@localhost bin]# ./redis-cli

    127.0.0.1:6379> set test admin

    用 windows客户端工具查看,发现可以同步的。

    也可以从主登入到从:说没有设置权限

    但是有查的权限的

    我从从那里登不进呢

     

     

    其它模式还没有搞。

    哨兵模式

    集群模式

     

     

    Processed: 0.008, SQL: 9