redis 主从搭建
来源:互联网 发布:成本估算软件 编辑:程序博客网 时间:2024/05/26 09:56
主从服务器
使用redis 搭建一主多从环境.
redis 提供一种复制(replication)功能, 可以实现当一台数据库中的数据更新后,自动同更新同步到其他数据库上. 这就是所谓的主从模式.
在这种主从模式中, 数据库分两类:
- 主数据库: 可以进行读写操作;
- 从数据库: 一般可以读操作;
实战
1. 环境准备
现在模拟在一台电脑上,开启三个redis 实例,监听端口分别是6379(默认端口), 6380, 6381 . 使用redis 6379 端口作为master; 安装过程此处省略…
##### 启动三个实例
###### 配置初始化脚本
在redis 解压源码目录utils 文件夹有一个redis_init_script的初始化脚本文件. 将脚本文件复制到 /etc/init.d 目录中 分别命名为redis_6379, redis_6380, redis_6381; 并修改端口属性REDISPORT 如下:
6380:
#!/bin/sh## Simple Redis init.d script conceived to work on Linux systems# as it does use of the /proc filesystem.REDISPORT=6380EXEC=/usr/local/bin/redis-serverCLIEXEC=/usr/local/bin/redis-cliPIDFILE=/var/run/redis_${REDISPORT}.pidCONF="/etc/redis/${REDISPORT}.conf"...
6381:
#!/bin/sh## Simple Redis init.d script conceived to work on Linux systems# as it does use of the /proc filesystem.REDISPORT=6381EXEC=/usr/local/bin/redis-serverCLIEXEC=/usr/local/bin/redis-cliPIDFILE=/var/run/redis_${REDISPORT}.pidCONF="/etc/redis/${REDISPORT}.conf"...
6379:
#!/bin/sh## Simple Redis init.d script conceived to work on Linux systems# as it does use of the /proc filesystem.REDISPORT=6379EXEC=/usr/local/bin/redis-serverCLIEXEC=/usr/local/bin/redis-cliPIDFILE=/var/run/redis_${REDISPORT}.pidCONF="/etc/redis/${REDISPORT}.conf"...
脚本参数说明
- redisport: 指定程序开启的端口号
- EXEC: redis程序安装目录(一般是默认路径)
- CLIEXEC: redis连接客户端程序路径(一般都是路径)
- PIDFILE: 当redis 做为守护进程启动时,进程pid 存储位置
- CONF : redis启动时加载的配置文件路径
创建配置管理文件夹
redis 默认会开启RDB持久化,所以需要配置管理持久化文件的位置;
1. 创建 /etc/redis 文件夹; 作用:存放redis配置文件(redis_6379.conf redis_6380.conf redis_6381.conf), 为什么要在etc 下创建redis 文件夹, 如果想切换到其他文件夹,修改直接修改redis_* 脚本
2. 创建 /var/redis/6379, /var/redis/6380, /var/redis/6381 目录; 作用: 用于存储持久化文件目录(配置路径见redis_端口.conf)
配置文件
复制redis 源码路径下redis.conf 到etc/redis 文件夹zhong, 命名:redis_6379.conf redis_6380.conf redis_6381.conf
修改配置文件
1. 设置redis守护进程 daemonize yes
2. 配置redis Pid 位置 pidfile /var/run/redis_端口号.pid
3. 配置监听端口号 port 端口号
4. 配置持久化文件位置 dir /var/redis/端口
分配权限,并启动
sudo chmod +x /etc/init.d/redis_6379
etc/init.d/redis_6381 start
root@ubuntu:/# sudo chmod +x etc/init.d/redis_6381 root@ubuntu:/# root@ubuntu:/# root@ubuntu:/# etc/init.d/redis_6381 startStarting Redis server...root@ubuntu:/# root@ubuntu:/# root@ubuntu:/# netstat -ano |grep 6381tcp 0 0 0.0.0.0:6381 0.0.0.0:* LISTEN off (0.00/0/0)tcp6 0 0 :::6381 :::* LISTEN off (0.00/0/0)root@ubuntu:/# redis-cli -p 6381127.0.0.1:6381> auth ricisungOK127.0.0.1:6381> keys *(empty list or set)127.0.0.1:6381> 127.0.0.1:6381> 127.0.0.1:6381> 127.0.0.1:6381> 127.0.0.1:6381> 127.0.0.1:6381> quit
….
2. 配置过程
目前为止, 现在已经将三个redis实例启动起来,三个独立的redis实例,没有任何关联,目前他们都是master;
通过info replication 查看
127.0.0.1:6380> info replication# Replicationrole:masterconnected_slaves:0master_repl_offset:0repl_backlog_active:0repl_backlog_size:1048576repl_backlog_first_byte_offset:0repl_backlog_histlen:0127.0.0.1:6380>
OK127.0.0.1:6379> info replication# Replicationrole:masterconnected_slaves:0master_repl_offset:0repl_backlog_active:0repl_backlog_size:1048576repl_backlog_first_byte_offset:0repl_backlog_histlen:0127.0.0.1:6379> 127.0.0.1:6379>
…
启动主从的两种方式
1. 通过命令启动
启动6379 端口后, 在启动6380,和6381 时候指定6379为master;
redis-server –port 6380 –slaveof 127.0.0.1 6379
redis-server –port 6381 –slaveof 127.0.0.1 6379
不加建议使用因为没有作为守护进程启动,这种启动方式根据客户端进程创建的;
2. 通过修改配置启动
修改配置文件 端口.config
slaveof 选项默认是禁止的 :
# slaveof <masterip> <masterport>
slaveof 127.0.0.1 6379
3. 运行中配置
直接使用slaveof 命令; 语法 slaveof masterip masterport
修改完配置重启redis_6380 和redis_6381 ,然后使用info replication 查看
127.0.0.1:6380> info replication# Replicationrole:slavemaster_host:127.0.0.1master_port:6379master_link_status:downmaster_last_io_seconds_ago:-1master_sync_in_progress:0slave_repl_offset:1master_link_down_since_seconds:1468133220slave_priority:100slave_read_only:1connected_slaves:0master_repl_offset:0repl_backlog_active:0repl_backlog_size:1048576repl_backlog_first_byte_offset:0repl_backlog_histlen:0127.0.0.1:6380>
127.0.0.1:6379> info replication# Replicationrole:masterconnected_slaves:1slave0:ip=192.168.0.223,port=6381,state=online,offset=85,lag=1master_repl_offset:85repl_backlog_active:1repl_backlog_size:1048576repl_backlog_first_byte_offset:2repl_backlog_histlen:84
此时要小心了,如果master 有密码保护, slave 主机显示已经连接上了master, 而master显示没有客户端连接;
修改slave的配置 masterauth masterpassword
3. 测试
在master主机上添加删除修改内容,分别从slave 获取判断是否正确;
测试master info replication 信息如下:
127.0.0.1:6379> info replication# Replicationrole:masterconnected_slaves:2slave0:ip=192.168.0.223,port=6381,state=online,offset=617,lag=0slave1:ip=127.0.0.1,port=6380,state=online,offset=617,lag=0master_repl_offset:617repl_backlog_active:1repl_backlog_size:1048576repl_backlog_first_byte_offset:2repl_backlog_histlen:616127.0.0.1:6379>
创建测试
master:
127.0.0.1:6379> 127.0.0.1:6379> hmset l2 l2_a1 asdf l2_a2 sjdiwOK127.0.0.1:6379> hgetall l21) "l2_a1"2) "asdf"3) "l2_a2"4) "sjdiw"127.0.0.1:6379>
6380:
127.0.0.1:6380> hgetall l21) "l2_a1"2) "asdf"3) "l2_a2"4) "sjdiw"127.0.0.1:6380>
6381:
root@ubuntu:/# redis-cli -p 6381127.0.0.1:6381> auth ricisungOK127.0.0.1:6381> hgetall l21) "l2_a1"2) "asdf"3) "l2_a2"4) "sjdiw"127.0.0.1:6381>
到此redis 一主多从已经搭建完毕.
- Redis主从搭建
- redis 搭建主从
- redis主从服务器搭建
- ubantu 搭建 redis 主从
- redis 主从搭建
- redis 主从搭建
- redis主从复制搭建
- Redis主从服务器负载搭建
- redis-3.0主从搭建实践
- redis主从集群的搭建
- redis主从配置和php扩展搭建
- redis的主从高可用搭建
- liunx下搭建redis主从复制
- redis 主从master-slave搭建及测试
- redis主从复制及HA环境搭建
- Redis主从复制读写分离搭建
- Redis主从服务器同步搭建(基础篇)
- redis 3.2.8主从HA搭建
- 生成jar包
- 存储过程实现分页
- spark 第一个java程序
- JAVA学习总结二十四
- POJ1364
- redis 主从搭建
- Guacamole——1.实现和架构
- 动态修改QGridLayout
- 对Java异常分析的一些见解
- Python添加默认模块搜索包路径
- hdu 3374 next表,最大最小表示法模板
- V6+2C6678调试之小FPGA--S3
- 一道关于股票买卖的算法编程题
- Python实现汉诺塔移动