美文网首页
linux环境下载redis安装及主从复制

linux环境下载redis安装及主从复制

作者: 清风徐来_简 | 来源:发表于2018-11-24 14:37 被阅读0次

    编译安装的优势是:

    • 1,编译安装时可以指定扩展的module(模块),php、apache、nginx都是一样有很多第三方扩展模块,如mysql,编译安装时候,如果需要就定制存储引擎(innodb,还是MyIASM)
    • 2,编译安装可以统一安装路径,linux软件约定安装目录在/opt/下面
    • 3,软件仓库版本一般比较低,编译源码安装可以根据需求,安装最新的版本

    一、安装启动redis

    • 1.下载redis源码

    wget http://download.redis.io/releases/redis-4.0.10.tar.gz

    • 2.解压缩

    tar -zxf redis-4.0.10.tar.gz

    • 3.切换redis源码目录

    cd redis-4.0.10

    • 4.编译源文件,src/目录下有编译好的redis指令,安装到指定目录,默认在/usr/local/bin

    make & make install

    • 5. redis配置相关

        1.找到redis配置文件:
       find / -name redis.conf
        2.打开文件:
       vim /redis-4.0.10/redis.conf
        3.配置文件:(1.更改端口启动2.开启保护模式3.使用密码登录redis)

    protected-mode yes   #打开保护模式
    port 6380  #更改默认启动端口
    requirepass password   #设置redis启动密码,password是自定义的密码
    daemonize yes  #不会夯住
    
    • 6.查看redis进程

    ps -ef |grep redis

    • 7.切进文件夹

    cd redis-4.0.10/

    • 8.指定配置文件启动

    redis-server redis.conf(需要在conf文件所在目录执行才可找到)

    • 9.连接服务端,配置只有本地可以连接

    修改配置文件属性:bind 127.0.0.1
    连接方式1:redis-cli -p 6380

    127.0.0.1:6380> auth password
    OK
    127.0.0.1:6380> ping
    PONG
    

       连接方式2:redis-cli -p 6380 -a 密码

    • 10.使用cmd连接,外机连接

    修改配置文件的bind属性:bind 10.0.0.10
    cmd输入命令:redis-cli -h 10.0.0.10 -p 6380

    10.0.0.10:6380>auth password
    10.0.0.10:6380>ping
    PONG
    连接成功,可正常使用
    
    • 11.查询redis是否有密码

    10.0.0.10:6380> CONFIG get requirepass

    • 12.通过命令更改

    10.0.0.10:6380> CONFIG set requirepass "xxxxxx"

    二、主从同步

    • 1.准备阶段
    redis支持多实例,一台机器可以运行多个redis
    但是为了方便,又为了实验的准确性,所以我们不在同一台虚拟机开启不同的redis。
    而是在不同的虚拟机开启不同的redis,由于测试时没有网,所以就将10机器的相关文件cp到了11机器上
    
    scp -r /usr/bin/* root@10.0.0.11:/usr/bin/
    scp -r /usr/local/bin/redis-server root@10.0.0.11:/usr/local/bin/
    scp -r redis.conf root@10.0.0.11:/redis-4.0.10/
    scp -r /usr/local/bin/redis-cli
    
    • 2.分别新建两个配置文件

       redis-6379.conf
       redis-6380.conf

    • 3.主库配置

       vi redis-6379.conf
       输入以下内容(没有持久化配置,只是为了测试):

    bind 10.0.0.10
    port 6379
    daemonize yes
    pidfile /var/run/redis_6379.pid
    requirepass password   // 主库密码
    
    • 4.从库配置

       vi redis-6380.conf
       输入以下内容(没有持久化配置,只是为了测试):

    bind 10.0.0.11
    port 6380
    daemonize yes
    pidfile /var/run/redis_6380.pid
    slaveof 10.0.0.10 6379
    requirepass password  // 从库密码
    masterauth password  // 连接主库:时的验证密码,如果主库设置了密码必须加上,否则不生效
    
    • 5.启动主库,结合配置文件

    redis-server redis-6379.conf

    • 6.启动从库,结合配置文件

    redis-server redis-6380.conf

    • 7.连接主库
    redis-cli -h 10.0.0.10 -p 6379
    auth password
    
    • 8.连接从库
    redis-cli -h 10.0.0.11 -p 6380
    auth password
    
    • 9.使用客户端测试
    主库执行:
            set aaa 11111
            keys *      
    从库执行:
            keys *   可查看
    
    • 10.找进程,关闭
    ps -ef |grep redis-serve
    kill   xxx
    
    • 11.使用python测试
    执行代码:
            import redis
            redis = redis.Redis(host='10.0.0.10',port=6379,password='xxxx')
            redis.set('bbb',111)
    从库查看:
            redis-server redis-6380.conf 
            redis-cli -h 10.0.0.11 -p 6380
            auth password
            keys *
    

    实现了主从复制之后,一方面能够实现数据的读写分离,降低master的压力,另一方面也能实现数据的备份。

    1.如果主机已经运行了一段时间了,并且了已经存储了一些数据了,此时从机连上来,那么从机会将主机上所有的数据进行备份,而不是从连接的那个时间点开始备份。
    2.配置了主从复制之后,主机上可读可写,但是从机只能读取不能写入(可以通过修改redis.conf中 slave-read-only 的值让从机也可以执行写操作)。
    3.在整个主从结构运行过程中,如果主机不幸挂掉,重启之后,他依然是主机,主从复制操作也能够继续进行。

    相关文章

      网友评论

          本文标题:linux环境下载redis安装及主从复制

          本文链接:https://www.haomeiwen.com/subject/ovxyqqtx.html