一.Redis简介
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)
二.安装redis
三.安装redis
bind 全网段
进入redis,创建数据
数据是内存快照,保存到/var/lib/redis,格式为rdb
四.在server2和server3安装redis,测试数据同步
五.Redis的哨兵
Redis的哨兵(sentinel)系统用于管理多个 Redis服务器,该系统执行以下三个任务:
· 监控(Monitoring):哨兵(sentinel)会不断地检查你的Master和Slave是否运作正常。
· 提醒(Notification):当被监控的某个 Redis出现问题时,哨兵(sentinel)可以通过 API 向管理员或者其他应用程序发送通知。
· 自动故障迁移(Automatic failover):当一个Master不能正常工作时,哨兵(sentinel)会开始一次自动故障迁移操作,它会将失效Master的其中一个Slave升级为新的Master,并让失效Master的其他Slave改为复制新的Master;当客户端试图连接失效的Master时,集群也会向客户端返回新Master的地址,使得集群可以使用Master代替失效Master。
1.在server1配置sentinel哨兵文件
2.将sentinel.conf文件传给server2和server3
3.server1、server2、server3启动哨兵
4.将server1 主节点shutdown,30s后,在server3上查看master切换到server2
4.重新启动,将server1的sentinel.conf文件里的主修改为server2
六.Redis高可用
在server1上开多个不同端口的redis
1.安装rubygems模块,使得gem模块可以调用redis
2.将redis-trib.rb命令拷到/usr/local/bin下,方便使用命令
3.在/usr/local/新建redis-cluster
在redis-cluster下新建30001-30006
配置30001的redis文件
配置完成后,启动服务,在30001目录里redis-server 30001/redis.conf
4.按照30001的方法配置30002-30006,修改里面的目录和端口,配置完启动
5.创建集群
选择yes
三个mastar,三个slave
master有槽位,一共16383,id一样的为一组主从,一对主从不能同时坏掉,一但一对主从都坏掉,集群失效
6.查看集群信息,从30001接口进入,接口30001-30006都可以
8.从30002接口进入,关闭2节点,从从30003接口登陆,数据没有丢失,从 从机30005上将数据取出
但30005变为master,30002变为slave
9.添加新节点
(1)将30007添加为master
查看集群状态,30007没有槽位
平均master槽位
(2)将30008添加为slave
10.登陆测试取值,发现原来name的槽位平均到master30007上
本文转自一百个小排 51CTO博客,原文链接:http://blog.51cto.com/anfishr/1974247,如需转载请自行联系原作者