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 [频道] [发布内容] 进行发布消息广播

架构师养成记--32.Redis高级(安全 主从复制)的更多相关文章

  1. 架构师养成记--35.redis集群搭建

    前记:redis哨兵经验之谈.哨兵做主从切换可能要花费一两秒,这一两秒可能会丢失很多数据.解决方法之一是在java代码中做控制,try catch 到 链接断开的异常就sleep 一两秒钟再conti ...

  2. 架构师养成记--29.redis开篇

    主要有从下几点讲解 NOSQL(Redis) 简介.redis安装与部署 Redis基础事件类型详解 Redis高级命令 Redis与java的使用 Redis集群搭建 Redis集群与spring的 ...

  3. 架构师养成记--34.Redis持久化

    ---恢复内容开始--- redis是一个支持持久化的内存数据库,也就是搜redis需要经常将内存中的数据同步到硬盘来保证持久化.redis持久化有两种方式. snapshotting(快照)默认方式 ...

  4. 架构师养成记--33.Redis哨兵、redis简单事务

    Redis哨兵 有了主从复制,如果我想想对主从服务器进行监控,在redis2.6后提供了哨兵机制,2.6有哨兵1.0版本,并不稳定.2.8以后的哨兵功能才稳定起来. 顾名思义,哨兵就是监控Redis系 ...

  5. 架构师养成记--31.Redis的几种类型

    String类型 Redis一共分为五种基本数据类型:String.Hash.List.Set.ZSet String类型是包含很多张类型的特殊类型,并且是二进制安全的.比如对序列化的对象进行存储,比 ...

  6. 架构师养成记--30.Redis环境搭建

    Redis的安装 下载地址http://redis.io/download 安装步骤: 首先需要安装gcc,把下载好的redis-3.0.0-rc2.tar.gz 放到 /usr/local 文件夹下 ...

  7. 架构师养成记--20.netty的tcp拆包粘包问题

    问题描述 比如要发ABC DEFG HIJK 这一串数据,其中ABC是一个包,DEFG是一个包,HIJK是一个包.由于TCP是基于流发送的,所以有可能出现ABCD EFGH 这种情况,那么ABC和D就 ...

  8. 架构师养成记--15.Disruptor并发框架

    一.概述 disruptor对于处理并发任务很擅长,曾有人测过,一个线程里1s内可以处理六百万个订单,性能相当感人. 这个框架的结构大概是:数据生产端 --> 缓存 --> 消费端 缓存中 ...

  9. 架构师养成记--14.重入锁ReentrantLock 和 读写锁 ReentrantReadWriteLock

    ReentrantLock 有嗅探锁定和多路分支等功能,其实就是synchronized,wait,notify的升级. this锁定当前对象不方便,于是就有了用new Object()来作为锁的解决 ...

随机推荐

  1. CloudStack 全局参数设置

    mem.overprovisioning.factor 内存超分参数 cpu.overprovisioning.factor cpu超分参数

  2. select_shape_proto算子的几种特征模式含义解析

    select_shape_proto是一个非常有用的region筛选算子,但是由于难以理解,因此一般人使用得不是太多. 算子签名如下: select_shape_proto(Regions, Patt ...

  3. [Training Video - 1] [Selenium Basics] [Xpath Selenium]

    FirePath Press F12, you will see :

  4. 如何用Python实现常见机器学习算法-3

    三.BP神经网络 1.神经网络模型 首先介绍三层神经网络,如下图 输入层(input layer)有三个units(为补上的bias,通常设为1) 表示第j层的第i个激励,也称为单元unit 为第j层 ...

  5. RocketMQ 服务器3模式

    22 a b-s---------------------------sh mqbroker -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-a.propertie ...

  6. [label][翻译][JavaScript-Translation]七个步骤让你写出更好的JavaScript代码

    7 steps to better JavaScript 原文链接: http://www.creativebloq.com/netmag/7-steps-better-javascript-5141 ...

  7. Get Current LOV Query SQL

    --3 click the lov object activing last query address.  SELECT T.SQL_TEXT    FROM V$SQLTEXT_WITH_NEWL ...

  8. DELPHI移动端支付宝支付

    Delphi XE7 Android 应用接入支付宝SDK的方法 1      应用场景和准备工作: 采用XE系列开发的android apps. apps中需要集成支付宝的支付能力. 支付到指定的商 ...

  9. 【转】不用软件,解压Win8/Win8.1的install.wim文件

    今天用好压解压Windows 8.1的install.wim文件,居然提示文件损坏,换了7Z仍然如此:其实文件是好的.只不过这些软件暂时不支持罢了,还好可以用dism命令来手动完成. 一.检查镜像版本 ...

  10. String调用Array相关方法——有点古怪

    这个系列的前面几篇文章中有谈到在一个Object上使用apply.call等方法操作另一个Object的方法,今天我们来学习怎么样在String上调用Array相关方法. 在许多方面,字符串表现的好像 ...