03Redis主从复制和哨兵

1. 高级命令和特性

  1. 返回满足的所有键(可以模糊搜索)
  2. exists:是否存在指定的key
  3. expire:设置某个key的过期时间,使用ttl查看剩余时间(以秒为单位)
  4. persist:取消过期时间
  5. select:选择数据库 数据库0-15(一共16个数据库)默认进入0数据库
  6. move [key] [数据库下标] 将当前数据库中的key 转移到其他数据库中
  7. randomkey:随机返回数据库里的一个key
  8. rename:重命名key
    这里写图片描述
  9. echo:打印命令
  10. dbsize:查看数据库key的数量
  11. info:获取数据库信息
  12. config get:实时转储收到的请求(返回相关的配置信息)
    config get *
  13. flushdb:清空当前数据库 flushall 清空所有数据库

redis分为16个区域是逻辑上的划分,数据都可以存在第0个数据库,数据库大小可以动态的规划

2. redis的安全性

因为redis的速度很快,一台性能较好的服务器下,一个用户在一秒钟内可以进行15W次的密码尝试,因此就需要强大的密码来防止暴力破解。
1. 用vim对redis.conf文件进行编辑,找到
# requirepass foobared
requirepass 密码
重启服务器:pkill redis-server
再次进行redis客户端时:auth 密码
或者直接登录授权:
/usr/local/redis/bin/redis-cli -a 密码

3. 主从复制

  1. 主从复制:
    a. Master可以拥有多个Slave
    b. 多个slave可以连接同一个master外,还可以连接到其他的slave
    c. 主从复制不会阻塞master,在同步数据时,master可以继续处理client请求
    d. 提供系统的伸缩性
  2. 主从复制过程:
    a. slave与master建立连接,发送sync同步命令
    b. master会开启一个后台进程,将数据库快照保存到文件中,同时master主进程会开始收集新的写命令并缓存
    c. 后台完成保存后,就将文件发送给slave
    d. slave将此文件保存到硬盘上
  3. 主从复制配置:
    a. clone服务器之后修改slave的IP地址
    b. 修改配置文件:redis.conf
    c. 第一步:slaveof <master><mastport>
    d. 第二步:masterauth <master-password>
    使用info查看role角色可以知道是主从服务器
    这里写图片描述
    如果是从服务器输入info命令之后会看见
    这里写图片描述
    role表明服务器身份是slave
    如果是主服务器
    这里写图片描述
    如果连不上主服务器,查看一下是否是主服务器防火墙未关闭
  4. 设置redis日志
    在redis.conf文件中加入:
    loglevel notice#日志等级
    logfile “/usr/local/redis/log/redis.log”
  5. 将redis、redis-3.0.0等文件复制到从服务器
    scp -r 要复制的文件 目标机器IP:/放文件的位置
    这里写图片描述
    -r表示递归创建

4. 哨兵

有了主从复制的实现后,我们如果想对主服务器进行监控,redis就提供了一个哨兵机制,redis2.8版本后的哨兵才开始稳定起来。
1. 哨兵主要功能:
 a. 监控主数据库和从数据库是否正常运行
 b. 主数据库出现故障时,可以自动将从数据库转为主数据库,实现自动切换
2. 实现步骤:
 a. 在其中一台从服务器配置sentinel.conf
  copy文件sentinel.conf到/usr/local/redis/etc中
  修改sentinel.conf文件
  sentinel monitor mymaster 192.168.1.174 6379 1 #名称 IP 端口 投票选举次数
  sentinel down-after-milliseconds mymaster 5000 #默认1秒检测一次,这里配置超时5000毫秒为宕机
  sentinel failover-timeout mymaster 900000(超时时间)
  sentinel parallel-syncs mymaster 2 (有多少个从节点)
  sentinel can-failover mymaster yes
 b. 启动sentinel哨兵
  /usr/local/redis/bin/redis-server /usr/local/redis/etc/sentinel.conf –sentinel &
  &代表后台启动
 c. 查看哨兵相关信息命令
  /usr/local/redis/bin/redis-cli -h 192.168.1.175 -p 26379 info Sentinel
 d. 关闭主服务器查看集群信息
  /usr/local/redis/bin/redis-cli -h 192.168.1.174 -p 6379 shutdown
  
sentinel.conf中添加dir:dir /usr/local/redis/etc
1:代表只要有一个投票选举,就让被投的机器成为master

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载哦。 https://blog.csdn.net/a464700300/article/details/77199513
文章标签: redis
个人分类: redis
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭