架构师养成记--32.Redis高级(安全 主从复制)

Redis高级命令及特性

  • keys * 返回满足的所有键值(*表示模糊匹配)
  • exists 是否存在指定的key(返回1表示存在,0表示不存在)
  • expire 设置某个key的过期时间,使用ttl查看剩余时间(参数单位是秒,返回-2表示已过期,返回-1表示没有设置过期时间)
  • perisist 取消过期时间
  • select 选择数据库 数据库为0到15(一共16个数据库)默认进入的是0数据库
  • move [key] [数据库下标] 将当前数据中的key转移到其他数据库中
  • randomkey 随机返回数据库里的一个key
  • rename 重命名key
  • echo 打印命令
  • dbsize 查看数据库的key数量
  • info 获取数据库信息
  • config get 实时转储收到的强求(返回相关的配置信息)
  • config get * 返回所有配置(也就是redis-config文件的精简版)
  • flushdb 清空当前数据库,flushall 清空所有数据库

Redis的安全性

  因为redis速度相当快,所以在一台比较好的服务器下,一个外部永不在1s内可以进行15W次的密码尝试 ,这意味着你需要设定一个非常强大的密码来防止暴力破解。

  1. vi编辑redis.config文件,找到下面内容,保存修改
      #requirepass foobared
      requirepass ***
  2. 重启服务器 pkill redis-server
      再次进入 keys * 会发现没有权限进行查询,输入密码 auth *** 则成功进入,每次进入都要输入密码,还有一种简单的方式:
      /usr/local/redis/bin/redis-cli - a ***

主从复制

  1. master可以拥有多个slave
  2. 多个slave可以连接同一个master外,还可以连接其他的slave
  3. 主从复制不会阻塞master,在同步数据时,master可以继续处理client请求
  4. 提供系统的伸缩性

主从复制过程

  1. slave与master建立连接,发送sync同步命令
  2. master会开启一个后台进程,将数据库快照保存到文件中,同时master主进程会开始收集新的写命令并缓存
  3. 后台完成保存后,就将文件发送给slave
  4. slave将此文件保存到硬盘上

主从复制配置

  1. clone服务器之后修改slave的IP地址
  2. 修改配置文件:/usr/local/redis/etc/redis.conf
        第一步:slaveof <masterip> <mastport>
        第二步:masterauth <master-password>
  3. 使用info查看role角色即可知道是主服务或从服务

发布与订阅

redis 提供简单的发布订阅功能

使用subscribe [频道] 进行订阅

使用publish [频道] [发布内容] 进行发布消息广播

上一篇:redis高级应用(集群搭建、集群分区原理、集群操作)


下一篇:Windows平台下MySQL常用操作与命令