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

编译安装的优势是:

  • 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.在整个主从结构运行过程中,如果主机不幸挂掉,重启之后,他依然是主机,主从复制操作也能够继续进行。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容