redis主从数据库(一写多读):
一类是主数据库(master),一类是从数据库(slave)。主数据库
可以进行读写操作,当发生写操作时自动将数据同步给从数据库。而从数据库一般是只读的,
并接受主数据库同步过来的数据。一个主数据库可以拥有多个从数据库,而一个从数据库只
能拥有一个主数据库
主redis上不需要配置,只需要在从redis上配置。
从数库的配置方式:
1.redis.conf 中
# 配置本redis server 为某一个redis server 实便的从数据库,masterip 主库IP,masterport主库端口
# 从库自动从主库同步数据
# slaveof <masterip> <masterport>
2. 从redis客户端上执行命令
SLAVEOF host port
使当前连接到redis服务器成为host:port redis服务器的从数据库。
如果当前服务器已经是某个主服务器(master server)的从属服务器,那么执行 SLAVEOF host port 将使当前服务器停止对旧主服务器的同步,丢弃旧数据集,转而开始对新主服务器进行同步。
从数库转换为主数据库的方式:
1.redis.conf 中 将slaveof 注释掉
2.使用客户端连接到server ,执行命令:SLAVEOF NO ONE
示例:
配置三个Redis数据库,端口分别为 6379,6380,6381,相应的配置文件如下:
/app/redis/etc/redis_6379.conf:
#引入默认的配置文件 include /app/redis/etc/redis.conf #覆盖默认的配置文件 daemonize yes port 6379 dir /app/redis/data/ dbfilename dump_6379.rdb pidfile /app/redis/pid/redis_6379.pid logfile /app/redis/logs/redis_6379.log
/app/redis/etc/redis_6380.conf:
#引入默认的配置文件 include /app/redis/etc/redis.conf #覆盖默认的配置文件 daemonize yes port 6380 dir /app/redis/data/ dbfilename dump_6380.rdb pidfile /app/redis/pid/redis_6380.pid logfile /app/redis/logs/redis_6380.log slaveof 127.0.0.1 6379
/app/redis/etc/redis_6381.conf:
#引入默认的配置文件
include /app/redis/etc/redis.conf
#覆盖默认的配置文件
daemonize yes
port 6381
dir /app/redis/data/
dbfilename dump_6381.rdb
pidfile /app/redis/pid/redis_6381.pid
logfile /app/redis/logs/redis_6381.log
slaveof 127.0.0.1 6379
启动redis服务器:
redis-server /app/redis/etc/redis_6379.conf
redis-server /app/redis/etc/redis_6380.conf
redis-server /app/redis/etc/redis_6380.conf
使用客户端连接主数据库:
$ /app/bin>redis-cli -h localhost -p 6379 localhost:6379> dbsize (integer) 0 localhost:6379> set index 10//添加key OK localhost:6379>
使用客户端连接6380 server:
/app/redis/bin> redis-cli -h localhost -p 6380
localhost:6380> keys *
1) "index"
localhost:6380> get index//主库中数据已同步到从库
"10"
localhost:6380> set index 11//从客户端上写入失败
(error) READONLY You can't write against a read only slave.
localhost:6380>
使用客户端连接6381 server:
vgop@hn-vgywapp3:/home/vgop/app/redis/bin> redis-cli -h localhost -p 6381
localhost:6381> get index
"10"
localhost:6381> set index 11 //从库上写入失败
(error) READONLY You can't write against a read only slave.
如果主redis数据库异常,可以手工切换从数据库为主:
使用客户端连接6381 server:
vgop@hn-vgywapp3:/home/vgop/app/redis/bin> redis-cli -h localhost -p 6381
localhost:6381> SLAVEOF NO ONE //从数据库转换为主
OK
localhost:6381> set index 11
OK
localhost:6381> get index
"11"
localhost:6381>
使用客户端连接6380 server:
vgop@hn-vgywapp3:/home/vgop/app/redis/bin> redis-cli -h localhost -p 6380
localhost:6380> slaveof localhost 6381//当前redis切换为 6381的从库
OK
localhost:6380> get index
"11"
localhost:6380>
这种切换的缺点:
1.主服务器端口变了
2.需要手动处理
相关推荐
redis服务配置,配置redis主从复制,多个哨兵监控redis主服务,自动切换服务
redis主从,只需要在从机上指定主机的ip和端口就完成了。 可以在从机的conf配置文件中增加如下一行: slaveof 127.0.0.1 6379 格式是 slaveof 主机ip 主机上redis的端口 也可以在从机的客户端手工输入这么一行命令...
在主从复制模式的集群里,主节点一般是一个,从节点一般是两个或多个,写入主节点的数据会被复制到从节点上,这样一旦主节点出现故障,应用系统能切换到从节点去读写数据,这样能提升系统的可用性。而且如果再采用...
本文是我花了一周时间整理出来的Redis哨兵模式(sentinel)学习总结,包括部署过程,主从复制、读写分离、主从切换等都已验证通过,可以作为完整手册使用.有需要的朋友,请拿走不谢.
redis集群部署+哨兵模式配置 配置redis主从复制,配置哨兵模式,实现主从自动切换 1、准备至少三台Linux服务器并关闭防火墙 2、安装软件包 3、下载redis源码包并安装
redis阅读理解,带详细注释 说明 本份代码从 clone下来,然后自己添加自己的理解,再次基础上增加函数调用流程注释。 疑问: 1,redis选主结束后,是否添加新主节点数据恢复流程(新主例程数据并非所有从例程中数据...
第 1 章Redis 介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 第 2 章数据类型初探. . . . . . . . . . . . . . . . . . . . . . . . . . . . . ...
第 1 章Redis 介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 第 2 章数据类型初探. . . . . . . . . . . . . . . . . . . . . . . . . . . . . ...
4 支持数据的备份,快速的主从复制 Redis使用单线程模型为什么性能依然很好? 1 基于内存的,数据读写快 2 避免线程切换浪费资源 3 基于非阻塞IO,多路复用 4 使用了高性能数据结构,如 Hash Redis各...
├─补充2:Redis3.0新特性、主从复制、集群视频教程 │ │ 打开必读.txt │ │ │ ├─相关资料 │ │ redis-3.0.1.tar.gz │ │ redis-3.0.2.tar.gz │ │ redis-3.2.1.gem │ │ Redis集群.docx │ │ ...
│ 05redis主从和哨兵操作.mp4 │ 06reids集群创建收缩扩容.mp4 │ 07redis运维工具.mp4 │ Elasticsearch分享V2.pdf │ Elasticsearch分享V4.pdf │ ES分享试验环境.docx │ ES操作.txt │ Redis分享-张亚V2.pdf │...
主从复制: 重点: 主数据库可以进行读写操作,当读写操作导致数据变化时,会自动将数据同步给从数据库 从数据库一般是只读的,并且接收主数据库传送过来的数据 一个master可以拥有多个slave,但是一个slave只能对应...
15.11.1 Mysql主从复制 315 15.11.2 Canal简介 316 15.11.3 Canal示例 318 第4部分案例 323 16 构建需求响应式亿级商品详情页 324 16.1 商品详情页是什么 324 16.2 商品详情页前端结构 325 16.3 我们的性能数据 327 ...
显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个目标文件 摘要:Java源码,网络相关,浏览器 Java编写的HTML浏览器源代码,一个很简单甚至不算是浏览器的HTML浏览器,使用方法: 可...
6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...