架构师养成记--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次的密码尝试 ,这意味着你需要设定一个非常强大的密码来防止暴力破解。
- vi编辑redis.config文件,找到下面内容,保存修改
#requirepass foobared
requirepass *** - 重启服务器 pkill redis-server
再次进入 keys * 会发现没有权限进行查询,输入密码 auth *** 则成功进入,每次进入都要输入密码,还有一种简单的方式:
/usr/local/redis/bin/redis-cli - a ***
主从复制
- master可以拥有多个slave
- 多个slave可以连接同一个master外,还可以连接其他的slave
- 主从复制不会阻塞master,在同步数据时,master可以继续处理client请求
- 提供系统的伸缩性
主从复制过程
- slave与master建立连接,发送sync同步命令
- master会开启一个后台进程,将数据库快照保存到文件中,同时master主进程会开始收集新的写命令并缓存
- 后台完成保存后,就将文件发送给slave
- slave将此文件保存到硬盘上
主从复制配置
- clone服务器之后修改slave的IP地址
- 修改配置文件:/usr/local/redis/etc/redis.conf
第一步:slaveof <masterip> <mastport>
第二步:masterauth <master-password> - 使用info查看role角色即可知道是主服务或从服务
发布与订阅
redis 提供简单的发布订阅功能
使用subscribe [频道] 进行订阅
使用publish [频道] [发布内容] 进行发布消息广播
架构师养成记--32.Redis高级(安全 主从复制)的更多相关文章
- 架构师养成记--35.redis集群搭建
前记:redis哨兵经验之谈.哨兵做主从切换可能要花费一两秒,这一两秒可能会丢失很多数据.解决方法之一是在java代码中做控制,try catch 到 链接断开的异常就sleep 一两秒钟再conti ...
- 架构师养成记--29.redis开篇
主要有从下几点讲解 NOSQL(Redis) 简介.redis安装与部署 Redis基础事件类型详解 Redis高级命令 Redis与java的使用 Redis集群搭建 Redis集群与spring的 ...
- 架构师养成记--34.Redis持久化
---恢复内容开始--- redis是一个支持持久化的内存数据库,也就是搜redis需要经常将内存中的数据同步到硬盘来保证持久化.redis持久化有两种方式. snapshotting(快照)默认方式 ...
- 架构师养成记--33.Redis哨兵、redis简单事务
Redis哨兵 有了主从复制,如果我想想对主从服务器进行监控,在redis2.6后提供了哨兵机制,2.6有哨兵1.0版本,并不稳定.2.8以后的哨兵功能才稳定起来. 顾名思义,哨兵就是监控Redis系 ...
- 架构师养成记--31.Redis的几种类型
String类型 Redis一共分为五种基本数据类型:String.Hash.List.Set.ZSet String类型是包含很多张类型的特殊类型,并且是二进制安全的.比如对序列化的对象进行存储,比 ...
- 架构师养成记--30.Redis环境搭建
Redis的安装 下载地址http://redis.io/download 安装步骤: 首先需要安装gcc,把下载好的redis-3.0.0-rc2.tar.gz 放到 /usr/local 文件夹下 ...
- 架构师养成记--20.netty的tcp拆包粘包问题
问题描述 比如要发ABC DEFG HIJK 这一串数据,其中ABC是一个包,DEFG是一个包,HIJK是一个包.由于TCP是基于流发送的,所以有可能出现ABCD EFGH 这种情况,那么ABC和D就 ...
- 架构师养成记--15.Disruptor并发框架
一.概述 disruptor对于处理并发任务很擅长,曾有人测过,一个线程里1s内可以处理六百万个订单,性能相当感人. 这个框架的结构大概是:数据生产端 --> 缓存 --> 消费端 缓存中 ...
- 架构师养成记--14.重入锁ReentrantLock 和 读写锁 ReentrantReadWriteLock
ReentrantLock 有嗅探锁定和多路分支等功能,其实就是synchronized,wait,notify的升级. this锁定当前对象不方便,于是就有了用new Object()来作为锁的解决 ...
随机推荐
- 721. Accounts Merge合并电子邮件账户
[抄题]: Given a list accounts, each element accounts[i] is a list of strings, where the first element ...
- 将Oracle数据库设置为归档模式及非归档模式
一.将Oracle数据库设置为归档模式 1)sql>shutdown normal/immediate;2)sql>startup mount;3)sql>alter databas ...
- Zookeeper 源码(三)Zookeeper 客户端源码
Zookeeper 源码(三)Zookeeper 客户端源码 Zookeeper 客户端主要有以下几个重要的组件.客户端会话创建可以分为三个阶段:一是初始化阶段.二是会话创建阶段.三是响应处理阶段. ...
- yum 系列(二) 离线部署
yum 系列(二) 离线部署 一.下载 rpm 依赖包 (1) yum 下载 rpm 包 准备一台 全新的 CentOS7 mini 虚拟机 ,联网下载所有所需的 rpm 包和其依赖, yum ins ...
- abp CrudAppService 自定义分页、排序
public class GetAllTasksInput : PagedAndSortedResultRequestDto { public TaskState? State { get; set; ...
- Oracle学习笔记(八)
十一.子查询 1.子查询概述 学习子查询的原因 事例:查询工资比SCOTT高的员工信息 思路:1.scott的工资 select sal from emp where ename='SCOTT'; 2 ...
- Oracle学习笔记(五)
七.查询 1.基本查询语句 select 列名字,列名字 from 表名字 例如 select user_a_id from userinfo; 2.在SQL*PLUS中设置格式 (1)设置新的字段名 ...
- 复杂HTML页面解析
1.层叠样式表CSS可以让html元素呈现出差异化,网络爬虫可以通过class属性的值,轻松分出不同标签 findAll函数通过标签的名称和属性来查找标签 from urllib.request im ...
- Google’s Project Tango is shutting down because ARCore is already here
https://www.theverge.com/2017/12/15/16782556/project-tango-google-shutting-down-arcore-augmented-rea ...
- ui-router 之 $state.go
Ui-router 之 $state.go $state.go(arg1,arg2,arg3),有三个参数:第一个参数是你需要跳转的完整路由:第二个参数是query,当然不需要query,直接写{ ...