Redis基础知识与集群搭建课件.ppt

上传人(卖家):晟晟文业 文档编号:5192022 上传时间:2023-02-16 格式:PPT 页数:49 大小:969KB
下载 相关 举报
Redis基础知识与集群搭建课件.ppt_第1页
第1页 / 共49页
Redis基础知识与集群搭建课件.ppt_第2页
第2页 / 共49页
Redis基础知识与集群搭建课件.ppt_第3页
第3页 / 共49页
Redis基础知识与集群搭建课件.ppt_第4页
第4页 / 共49页
Redis基础知识与集群搭建课件.ppt_第5页
第5页 / 共49页
点击查看更多>>
资源描述

1、Redis根底知识与集群搭建根底知识与集群搭建目录RedisRedis根底知识根底知识Redis集群搭建12Redis,典型的NoSQL数据库效劳器,采用KEY-VALUE存储构造,可以作为效劳程序独立运行于自己的效劳器主机,同时作为内存数据库,不用IO读取硬盘数据,能够快速响应请求。RedisRedis是什么?是什么?RedisRedis有什么特点?有什么特点?支持持久化、支持多种数据构造、支持主从复制、免费与关系型数据库比较与关系型数据库比较redis由于其存储构造相对简单,因此并不能对复杂的逻辑关系提供很好的支持,然而在适用于Redis的场景中,我们却可以由此而获得效率上的显著提升。作为

2、NOSQL数据库之一的redis,除了支持根本key-value方式,还支持构造化存储,以适应各类应用场景:nString:String:字符串类型nList:List:链表类型nHashes:Hashes:哈希类型nSet:Set:集合类型nSorted-SetsSorted-Sets有序集合类型String是最常用的一种数据类型,普通的key/value 存储都可以归为此类。当然,也可以存储图片,视频等序列化对象,Value最多可以容纳的数据长度是512M。1.赋值:SET KEY VALUE MSET KEY1 VALUE1 KEY VALUE2SETBIT KEY OFFSET 1/0

3、2.取值:GET KEY MGET KEY1 KEYGETBIT KEY OFFSET3.字符串操作:STRLEN KEYSETRANGE KEY OFFSET VALUESGETRANGE KEY START END4.数字操作:INCR KEY DECR KEYINCRBY KEY decrement/DECRBY KEY decrement 5.其他:SETEX KEY SECONDS KEY VALUEStringLENBUFFREEList类型是按照插入顺序排序的字符串链表。和数据构造中的普通链表一样,我们可以在其头部(left)和尾部(right)添加新的元素。在插入时,如果该键并

4、不存在,Redis将为该键创立一个新的链表。1.赋值:LPUSH/RPUSH KEY V1 V2 VNLPUSHX/RPUSHX KEY VALUE2.取值:LPOP/RPOP KEYLRANGE KEY START ENDGETBIT KEY OFFSET操作:LSET key index valueLINDEX KEY index4.取长度:LLEN KEY5.截取:LTRIM key start stop场景:LIST可以作为消息队列,LPUSH链表头作为生产者插入消息,RPOP作为消费者取得消息。我们可以将Redis中的Hashes类型看成具有String Key和String Val

5、ue的map容器。所以该类型非常适合于存储值对象的信息。1.赋值:HSET KEY FILED VALUE HMSET KEY FILED VALUE FILED1 VALUE2.取值:HGET KEYHMGET KEY KEYHKEYS KEYHVALS KEYHGETALL KEY3.删除:HDEL FILED FILED4.取长度:HLEN5.存在判定:HEXISTS key filed场景:AIOP中用户标签信息使用HASHMAP存储,存储构造为user:phone tag1 val1 tag2 val2,AIOP传递客户手机号,即可通过HGET user:phone tag1 tag

6、2 取出标签值。在Redis中,我们可以将Set类型看作为没有排序的字符集合,就像什锦果冻,只是聚集在一起,没有顺序,这和List类型不一样,另外要注意Set集合中不允许出现重复的元素,而且Set支持多个Sets之间的差、并、交集操作。1.新增:SADD KEY M1 M22.查询:SMEMEBERS KEYSPOP KEYSRANDMEMBER KEY3.删除:SREM KEY M1 M2MN4.取长:SCARD KEY5.存在判定:SISMEMBER KEY MEMBER6.聚合运算:SDIFF KEY1 KEY2 SINTER KEY1 KEY2 SUINON KEY1 KEY2场景:C

7、OC中将符合标签的用户进展聚类,存放到Set中,比方set1 存放学生标签用户、set2存放低消费用户、set3存放非合约用户,那么取出可能购置小米的低消非合约学生用户群:1.SINTERSTORE aset set1 set2 2.SDIFF aset set3 有序集合中也不允许有重复数据,它比Set多了一个score,Redis正是通过score来为集合中的成员进展从小到大的排序。需要注意的是,尽管Sorted-Sets中的成员必须是唯一的,但是分数(score)却是可以重复的。1.查询:ZADD KEY SCOREN MBR1 SCOREN MBRN2.删除:ZREM KEY MBR1

8、 MBR2 MBRN3.取前几位/后几位:ZRANGE key start stop WITHSCORESZREVRANGE key start stop WITHSCORES4.统计数量:ZCOUNT key min max5.取分数:ZSCORE key member场景:可以用于一个大型在线游戏的积分排行榜。每当玩家的分数发生变化时,可以执行ZADD命令更新玩家的分数,此后再通过ZRANGE命令获取积分TOP TEN的用户信息。当然我们也可以利用ZRANK命令通过username来获取玩家的排行信息。最后我们将组合使用ZRANGE和ZRANK命令快速的获取和某个玩家积分相近的其他用户的信

9、息。以上各类数据类型的操作全部是针对于KEY关联的value操作,redis也提供了单独对key值的操作匹配:KEYS pattern 例如 keys*列出所有key值删除:DEL key key.例如 del list1 删除链表1是否存在:EXISTS key键值迁移:MOVE key db-移向数据库 select 0 1可选择数据库查看数据类型:TYPE key 设置超时:EXPIRE key seconds/EXPIREAT key timestamp 取消超时:PERSIST keyRedis在设计之初就被定义为长时间不连续运行的效劳进程,因此大多数系统配置参数都可以在不重新启动进

10、程的情况下立即生效,我用到的有:Slaveof host port 修改主从关系Info 当前系统信息 shutdown 关闭redisflushall 清空所有keys flushdb 清空当前数据库key Redis主从复制的优势:2.支持级联复制:master-slave-slave,分载master同步压力3.支持非阻塞式数据同步:数据同步与对外效劳能力别离,互不影响4.支持slave只读模式主主从从复复制制流流程程1).RDB持久化:该机制是指在指定的时间间隔内将内存中的数据集快照写入磁盘。优点:1.只有一份rdb文件,可随时备份 2.比AOF文件小,加载效率高 3.只提供fork子

11、进程,不阻塞主进程,IO操作比较少2).AOF持久化:该机制将以日志的形式记录效劳器所处理的每一个写操作,在Redis效劳器启动之初会读取该文件来重新构建数据库,以保证启动后数据库中的数据是完整的。2.APPEND方式追加日志,不会对旧日志文件产生影响3).无持久化:我们可以通过配置的方式禁用Redis效劳器的持久化功能,这样我们就可以将Redis视为一个功能加强版的memcached了。4).同时应用AOF和RDB。1).RDB持久化:Dump快照的机制:1).Redis先fork子进程。2).子进程将快照数据写入到临时RDB文件中。3).当子进程完成数据写入操作后,再用临时文件替换老的文件

12、。redis.conf配置修改:save 900 1#在900秒后,如果至少有1个key发生变化,那么dump内存快照。save 300 10#在300秒后,如果至少有10个key发生变化,那么dump内存快照。save 60 10000#在60秒之后,如果至少有10000个key发生变化,那么dump内存快照。注释1:可以配置多个条件组成持久化策略 注释2:fork进程开销大,数据量太大时,消耗cpu和内存资源,影响父进程不能及时响应请2).AOF持久化:redis.conf配置修改 appendonly yes appendfsync always#每次有数据修改发生时都会写入AOF文件。

13、appendfsync everysec#每秒钟同步一次,该策略为AOF的缺省策略。appendfsync no#从不同步。高效但是数据不会被持久化。注释:一般选择always 每修改同步,保证数据平安Redis作为内存数据库,所有数据都从内存中拿,省去读写磁盘的消耗持久化是由fork子进程处理,主效劳对外能力不受影响,响应速度极快。但我们不可能将所有的数据都读到内存中,所以内存资源显得非常可贵,我们就要优化存储构造,使得好钢用在刀刃上.COC中每个客户会对应上千个标签,每个客户就是一个对象,我们如何存储它?phone序列化对象:tag1tag2tag3tagnkeyvaluePhone:ta

14、g1keyvaluephonekeyvaluev1Phone:tag2v2Phone:tagnvntag1v1tag2v2tagnvn序列化对象:要求在序列化对象:要求在redisredis存储前对象进展序列化操作,存储前对象进展序列化操作,每次取出后还要执行反序列化操作,开销太大;如果只想每次取出后还要执行反序列化操作,开销太大;如果只想取对象的某一个值,都需要将整个对象取出,还要解决并取对象的某一个值,都需要将整个对象取出,还要解决并发、数据一致性、加锁等复杂问题。发、数据一致性、加锁等复杂问题。K-VK-V模式模式:phone:phone字段冗余字段冗余HASHMAP:phoneHASH

15、MAP:phone字段只出现一次,防止数据冗余字段只出现一次,防止数据冗余存储存储构造构造比较比较比较K-V构造与HASHMAP构造对内存的影响:前提假设COC有1千万用户对象,每个用户对象有1000个标签,Redis存储的phone_no格式为185XXXXXXXX。1.根据ASCII编码,每位数字占用单字节字符,每个phone_no占用11Byte.2.K-V构造中,存放一个完成对象,每个phone_no需要重复1000次,所以存放1千万个对象phone_no为1000*1千万,所占空间为:内存内存优化优化效果效果2.根据业务场景,考虑使用BITMAP 前面我们在讲String的时候提到过

16、两个命令:setbit key offset 0/1 和 getbit key offset,这两个命令是在位上进展0/1赋值和取值。假设还是1000W用户,每个用户有1000个0/1标签,我们可以使用bitmap来存放这些数据:10010110000010phone1tag1tag1000Setbit phone1 1 1Setbit phone1 999 1所有标签总占用的内存为:0.000119MB*1000W=1.19GB,如果使用key-value构造包括hashes,内存占用至少是它的8倍。只适合只适合0101型标签型标签需要位移位与标签的字典表,属于额外开销,但相对而言需要位移位

17、与标签的字典表,属于额外开销,但相对而言字典表字典表offsetoffset数字可共享数字可共享redisredis数字池,比直接存字符串要数字池,比直接存字符串要省空间。省空间。牺牲时间换空间:牺牲时间换空间:1.1.维护字典表维护字典表 2.2.入库需要对应转化入库需要对应转化 3.3.出库计算也需要转换出库计算也需要转换BITMAPBITMAP使用总结使用总结本次本次redisredis根底知识中,我们介绍了根本的数据构造及常根底知识中,我们介绍了根本的数据构造及常用命令、数据类型的场景举例、用命令、数据类型的场景举例、redisredis主从复制机制、持主从复制机制、持久化机制、以及内

18、存优化。久化机制、以及内存优化。无论是数据构造选择还是内存优化,都要结合具体的业务无论是数据构造选择还是内存优化,都要结合具体的业务场景和业务要求,没有通用的最正确推荐模式,只有最符场景和业务要求,没有通用的最正确推荐模式,只有最符合需求的模式,所以我们需要我们不断尝试、不断优化。合需求的模式,所以我们需要我们不断尝试、不断优化。RedisRedis根底根底总结总结目录Redis根底知识Redis集群搭建12目的:高可用、负载均衡、易扩展、数据平安、性能提升目的:高可用、负载均衡、易扩展、数据平安、性能提升技术:集群地址虚拟技术:集群地址虚拟IPIP、网络通信、网络通信(监控消息监控消息)功能

19、:负载均衡、读写别离、故障转移功能:负载均衡、读写别离、故障转移集群集群集群指的是将几台效劳器集中在一起,实现同一业务方案1:haproxy+keepalived+redis集群 Redis Redis集群架构集群架构redisredis服务器服务器haproxyhaproxy服务器服务器REDISREDIS:通过:通过REDISREDIS的配置文件,可以实现主从复制、读的配置文件,可以实现主从复制、读写别离的工作。写别离的工作。HAPROXYHAPROXY:通过:通过haproxyhaproxy的配置文件,实现负载均衡,的配置文件,实现负载均衡,haproxyhaproxy负载均衡算法有多种

20、,一般采用轮询方式,当某负载均衡算法有多种,一般采用轮询方式,当某台台redis-salveredis-salve故障时,故障时,haproxyhaproxy会将其摘除。会将其摘除。KeepalivedKeepalived:是一个基于:是一个基于VRRPVRRP协议来实现效劳器高可用协议来实现效劳器高可用方案,可以利用其来防止方案,可以利用其来防止haproxyhaproxy单点故障单点故障,保证高可用。保证高可用。方案方案1 1redisredishaproxyhaproxykeepalivkeepaliveded机器1:redis主节点(10.1.49.53:6379)从节点(10.1.4

21、9.53:63791)从节点(10.1.49.53:63792)机器1:haproxy+keepalived机器2:从节点10.1.49.30:63793从节点10.1.49.30:63794机器2:haproxy+keepalived机器机器1:1:以以rootroot用户创立以下目录用户创立以下目录部署环境进入进入/usr/local/src/usr/local/src目录目录RedisRedis下载:下载:wget :/download.redis.io/releases/redis-2.8.9.tar.gzwget :/download.redis.io/releases/redis-

22、2.8.9.tar.gz解压解压redisredis安装包:安装包:编译编译redis:redis:复制配置文件,执行如下:复制配置文件,执行如下:修改修改redis.conf:redis.conf:bind设为10.1.49.53#redis效劳跟该IP绑定 dir设为/usr/local/redis/datadaemonize 设为yesport 6379修改修改 redis-slave1:redis-slave1:bind 10.1.49.53#bind 10.1.49.53#绑定绑定IPIPdir/usr/local/redis/datadir/usr/local/redis/data

23、port 63791port 63791slaveof 10.1.49.53 6379#slaveof 10.1.49.53 6379#是是10.1.49.53 637910.1.49.53 6379的从存储的从存储daemonize yes#daemonize yes#后台开启守护进程后台开启守护进程slave-read-only yes#slaveslave-read-only yes#slave只读只读注:不要覆盖原文件,找到相应的字段修改即可,其他保持原样注:不要覆盖原文件,找到相应的字段修改即可,其他保持原样修改修改 redis-slave2:redis-slave2:dir/usr

24、/local/redis/dataport 63792slaveof 10.1.49.53 6379daemonize yes启动启动slaveslave的的redisredis效劳:效劳:机器机器2:2:机器2上的部署如同机器1,只要配置从效劳器文件即可启动机器启动机器1 1上的上的redis-masterredis-master可通过ps ef|grep redis 查看效劳是否启动验证:验证:首先确认已启动:机器1上:redis-server redis-slave1redis-server redis-slave2机器2上:redis-server redis-slave3redis-

25、server redis-slave4到现在已完成redis集群配置,且只有.49.536379可写数据,其余slave机器只能读数据redis-cli-h10.1.49.53-p 6379Info可以看到这样子就是成功了:注1:配置文件中默认主从复制是开启的,通过上图可以看到命令机器为master,下挂4个从效劳器注2:查看我编写的redis启动关闭脚本 redis 该脚本放在/etc/init.d/中,通过service redis start/stop 使用1.如果报下面的错,说明master的redis没有启动,启动它既可2.在2号机子上执行报错,请检查防火墙策略 进入机器进入机器1

26、11.1.安装安装cd/usr/local/srcmake TARGET=linux26 PREFIX=/usr/local/haproxymake install PREFIX=/usr/local/haproxy注意:要查看linux系统的内核信息,要与TARGET匹配cd/usr/local/haproxycd/usr/local/haproxy#haproxy#haproxy 默认是没有配置文件的,需要默认是没有配置文件的,需要自己手机创立自己手机创立vihaproxy.cfgvihaproxy.cfg3.3.查看是否成功:查看是否成功:#启动ps-ef|grep haproxy#查进

27、程访问1 10.1.49.53:8888/haproxyadmin 机器1与机器2上的haproxy配置部署是一样的,通过keeplived采用单活方式对外提供效劳进入机器进入机器1 1cd/usr/local/src/cd/usr/local/src/./configure./configuremake&makeinstallmake&makeinstall注:假设这里报错提示没有装注:假设这里报错提示没有装opensslopenssl,那么执行,那么执行yum-y install openssl-yum-y install openssl-develdevel安装,假设还有其他的包没装,那

28、么执行安装,假设还有其他的包没装,那么执行yumyum命令进展安装命令进展安装cp/usr/local/etc/sysconfig/keepalived/etc/sysconfig/cp/usr/local/etc/sysconfig/keepalived/etc/sysconfig/mkdir/etc/keepalivedmkdir/etc/keepalivedcp/usr/local/etc/keepalived/keepalived.conf/etc/keepalived/cp/usr/local/etc/keepalived/keepalived.conf/etc/keepalived

29、/ln-s/usr/local/sbin/keepalived/usr/sbin/ln-s/usr/local/sbin/keepalived/usr/sbin/注注1 1:是是escesc下面的符号,不是单引号。另外下面的符号,不是单引号。另外ifif表达式注意空格,另外要注表达式注意空格,另外要注意意/etc/keepalived/check_haproxy.sh/etc/keepalived/check_haproxy.sh必须赋予可执行权限:必须赋予可执行权限:chmod 777 chmod 777/etc/keepalived/check_haproxy.sh/etc/keepali

30、ved/check_haproxy.sh,否那么会启动不起来,否那么会启动不起来vrrp_script chk_haproxy script/etc/keepalived/check_haproxy.sh interval 2global_defs router_id LVS_DEVELvrrp_instance VI_1 state BACKUP#备机 MASTER主机 interface eth0#绑定的网卡 virtual_router_id 53#与master保持一致,组号,同组能通知 priority 120#要比master低,选举的依据 advert_int 1 authent

31、ication auth_type PASS auth_type 1111 track_script chk_haproxy virtual_ipaddress#VIP check_haproxy.sh 脚本如下:#!/bin/bash#A=ps-C haproxy-no-header|wc-l#keepalived检查本机haproxy是否启动if ps-C haproxy-no-header|wc-l-eq 0;#haproxy进程是否为0thenecho haproxy not running,attempt to start up/usr/local/haproxy/sbin/hapr

32、oxy-f/usr/local/haproxy/haproxy.cfg#如果为零那么启动haproxysleep 5if ps-C haproxy-no-header|wc-l-eq 0;#判定是否启动成功thenecho haproxy start failure,stop keepalivedelseecho haproxy started successfiFi机器机器1 1、2 2上分别执行上分别执行:通过通过 ip add ip add,出现如下表示,出现如下表示VIPVIP建立建立通过ps-ef|grep haproxy 查看是否启动haproxy通过ps-ef|grep keep

33、alived 查看是否启动keepalived 通过 tail-f/var/log/messages,出现以下信息为正确主从复制验证:主从复制验证:在在mastermaster中执行中执行set key1“testset key1“test ,在,在slave1slave1、slave2 slave2、slave3slave3、slave4 slave4中执行中执行get key1,get key1,获得获得“test“test,测试通过测试通过读写别离验证:读写别离验证:在各在各slaveslave中执行中执行set key1“testset key1“test,报以下错误测试通过报以下错误

34、测试通过 (error)READONLY You cant write against a read (error)READONLY You cant write against a read only slave.only slave.负载均衡验证:负载均衡验证:redis-cli h 10.1.49.200 p 63790 redis-cli h 10.1.49.200 p 63790 get key1 get key1 得得“test“test ,测试通过测试通过负载均衡高可用验证:负载均衡高可用验证:kill-9 haproxy kill-9 haproxy进程号,进程号,redis-

35、cli h 10.1.49.200 p redis-cli h 10.1.49.200 p 63790 63790 get key1 get key1 得得“test“test ,测试通过测试通过扩展性验证:扩展性验证:slave3 slave3上执行上执行 slaveof 10.1.49.30 63798 slaveof 10.1.49.30 63798 脱离脱离master,master,再执行再执行 slaveof 10.1.49.53 6379 slaveof 10.1.49.53 6379 参加到参加到mastermaster,说明,说明slaveslave可不宕机扩展可不宕机扩展验

36、证方式验证方式方案2:redis官方Sentinel集群管理工具Sentinel1Sentinel2Sentinel3Sentinel4masterslaveslaveslave哨兵群Redis集群ping发布订阅SentinelSentinel:负责对:负责对redisredis群中的主从效劳器监控、提醒和自群中的主从效劳器监控、提醒和自动故障转移。动故障转移。RedisRedis群:对外提供群:对外提供redisredis效劳效劳方案方案2 2SentinelSentinel群群RedisRedis群群综述:综述:Redis Sentinel Redis Sentinel 是一个分布式系统

37、,是一个分布式系统,你可以在一个架构你可以在一个架构中运行多个中运行多个 Sentinel Sentinel 进程进程progressprogress,个数与,个数与redisredis集集群中效劳个数没有关联关系。群中效劳个数没有关联关系。这些进程使用流言协议这些进程使用流言协议gossip protocols)gossip protocols)来接收关于主效劳器是否下线的信来接收关于主效劳器是否下线的信息,息,并使用投票协议并使用投票协议agreement protocolsagreement protocols来决定来决定是否执行自动故障迁移,是否执行自动故障迁移,以及选择哪个从效劳器作

38、为新的以及选择哪个从效劳器作为新的主效劳器。主效劳器。流言协议:流言协议:SentinelSentinel效劳通过效劳通过pingping命令来确认监控效劳是否正常,当命令来确认监控效劳是否正常,当足够多数量的足够多数量的sentinelsentinel都确认监控的同一效劳停顿了主都确认监控的同一效劳停顿了主观下线,那么判定该效劳停顿客观下线。跟流言很观下线,那么判定该效劳停顿客观下线。跟流言很相似,一个哨兵说看不到目标了,他会向其他哨兵询问是相似,一个哨兵说看不到目标了,他会向其他哨兵询问是否看得到目标,足够多的哨兵说看不到目标,那么说明目否看得到目标,足够多的哨兵说看不到目标,那么说明目标

39、消失。一般来说,足够多就是一半及以上。标消失。一般来说,足够多就是一半及以上。投票协议:投票协议:投票协议就像选举,投票协议就像选举,sentinelsentinel群根据一定的规那么,从群根据一定的规那么,从redisredis群中选择一个新的主效劳器,并使其他群中选择一个新的主效劳器,并使其他redisredis效劳器效劳器作为新效劳器的作为新效劳器的slave,slave,并修改自身的配置文件并修改自身的配置文件原理原理Sentinel集群部署很简单,而且它跟redis集群逻辑上是独立,可以启动任意多个当然最少要两个才有效果效劳,只需要配置Sentinel.conf文件即可:port 2

40、6378#sentinel效劳端口daemonize yes#开启守护进程logfile“/var/log/redis/sentinel1.log“#sentinel运行日志sentinel monitor mymaster 10.1.49.53 6379 2#监控主效劳及判定客观下线所需要的最少主观下线sentinel效劳数sentinel down-after-milliseconds mymaster 60000#本sentinel效劳多长时间收不到消息才能判定主观下线sentinel failover-timeout mymaster 180000#故障转移判定超时间sentinel

41、parallel-syncs mymaster 1#故障转移后,允许最多几个slave可以同时从新效劳器同步数据配置配置配置文件自动生成内容:效劳在配置文件中指定从效劳器地址及配置文件自动生成内容:效劳在配置文件中指定从效劳器地址及其他其他sentinelsentinel效劳地址,效劳地址,sentinelsentinel的发布订阅功能支持向所监控的发布订阅功能支持向所监控mastermaster效劳发布和订阅消息,而消息中会包含从效劳器地址、端效劳发布和订阅消息,而消息中会包含从效劳器地址、端口,其他口,其他sentinelsentinel的信息,的信息,sentinelsentinel拿到

42、其他拿到其他sentinelsentinel效劳消息后,效劳消息后,会写入自己的配置文件中。会写入自己的配置文件中。FailoverFailover时间:当新时间:当新mastermaster代替老代替老mastermaster后,其他的后,其他的slaveslave会自会自动使用新动使用新mastermaster,同时向新,同时向新mastermaster发布同步数据请求,所有发布同步数据请求,所有slaveslave同步完成后,这次故障转移才算完成。而本参数就是规定最同步完成后,这次故障转移才算完成。而本参数就是规定最多有几个多有几个slaveslave可以同时进展数据同步,可以同时进展数

43、据同步,failoverfailover总时长是:总时长是:slaveCount%parallel-syncs+1slaveCount%parallel-syncs+1次次*单位同步时长单位同步时长 parallel-syncs parallel-syncs:从:从2 2中看出参数越小,故障转移时间越长。根中看出参数越小,故障转移时间越长。根底中提到过同步数据的底中提到过同步数据的forkfork子进程虽然不会阻塞效劳,但是会占子进程虽然不会阻塞效劳,但是会占用内存,可能使主效劳不能响应指令。所以本参数越大,同时不用内存,可能使主效劳不能响应指令。所以本参数越大,同时不能响应指令的能响应指令的

44、slaveslave就越多,就越影响对外效劳,甚至使对外效劳就越多,就越影响对外效劳,甚至使对外效劳能力中断。所以,配置参数是,我们要尽量减少故障转移时长,能力中断。所以,配置参数是,我们要尽量减少故障转移时长,同时也要预留足够的同时也要预留足够的slaveslave对外提供效劳。对外提供效劳。问题及本问题及本卷须知卷须知环境环境Redis:主节点(10.1.49.53:6379)从节点(10.1.49.53:63791)从节点(10.1.49.53:63792)Sentinel:S(10.1.49.53:26379)S1(10.1.49.53:26378)5353机机器器Redis:主节点(

45、10.1.49.30:63793)从节点(10.1.49.30:63794)Sentinel:S(10.1.49.30:26379)S(10.1.49.30:26378)3030机机器器配置文件配置文件Sentinel配置文件如右:1.根据实际情况修改port2.根据需要修改日志文件启动启动sentinelsentinel方法1:方法2:redis-serversentinel.conf -sentinel启动成功:ps ef|grep redis机机器器53533030启动启动redisredis机机器器53533030Redis-server redis-slave1Redis-serve

46、r redis-slave2Redis-server redis-slave3Redis-server redis-slave4观察日志观察日志命令1:10306 03 Feb 18:52:35.231#Sentinel runid is 242ce4ede4b8d9100f2f761ec00fc2774bca9ad710306 03 Feb 18:52:35.231#+monitor master mymaster 10.1.49.53 6379 quorum 210306 03 Feb 18:53:35.261#+sdown master mymaster 10.1.49.53 63791

47、0306 03 Feb 19:02:44.126*+sentinel sentinel 10.1.49.30:26378 10.1.49.30 26378 mymaster 10.1.49.53 637910306 03 Feb 19:02:44.143#-sdown master mymaster 10.1.49.53 637910306 03 Feb 19:02:44.144*+sentinel sentinel 10.1.49.53:26378 10.1.49.53 26378 mymaster 10.1.49.53 637910306 03 Feb 19:02:44.188*+sent

48、inel sentinel 10.1.49.30:26379 10.1.49.30 26379 mymaster 10.1.49.53 6379绿色:sentinel启动后监控master,6秒后未收到响应,判定客观下线+sdown 红色:master启动后,sentinel发布消息至master,也收到其他sentinel发布的消息,将这些sentinel添加到配置文件,并开场监控。Sentinel们判定master活着,取消主观下线和客观下线状态。配置文件新增内容观察日志观察日志命令2:redis-cli-h 10.1.49.53-p 63791 slaveof 10.1.49.53 63

49、7910306 03 Feb 19:23:08.501*+slave slave 10.1.49.53:63791 10.1.49.53 63791 mymaster 10.1.49.53 6379说明:一个新的从效劳器已经被 Sentinel 识别并关联+slave 命令3:在53与30上执行 slaveof 10.1.49.53 637910306 03 Feb 19:26:29.324*+slave slave 10.1.49.53:63792 10.1.49.53 63792 mymaster 10.1.49.53 637910306 03 Feb 19:28:19.838*+slav

50、e slave 10.1.49.30:63793 10.1.49.30 63793 mymaster 10.1.49.53 637910306 03 Feb 19:28:19.838*+slave slave 10.1.49.30:63794 10.1.49.30 63794 mymaster 10.1.49.53 6379说明:redis集群已经启动,并纳入sentinel群监控观察日志观察日志10306 03 Feb 19:36:22.681#+sdown master mymaster 10.1.49.53 637910306 03 Feb 19:36:22.715#+new-epoch

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(Redis基础知识与集群搭建课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|