[Redis]Redis高级特性的配置及使用
----------------------------------------------------------------------------
【Redis安全性】
一 . 默认我们进入Redis客户端是不需要密码的,但是在使用任何命令前保证已授权,这在一个你不信任其它人的环境里可能有用。
1. 按照如下方式可设置密码:
① 修改配置文件(默认为/usr/local/etc/redis.conf),找到requirepass foobared,默认已注释掉;将密码设为123456只需要这样,requirepass 123456,然后重启服务。(杀掉主进程:kill -9 进程号,启动:/usr/local/bin/redis-server /usr/local/etc/redis.conf)
② 此时/usr/local/bin/redis-cli进入到客户端就需要获取权限,没有将提示:(error) NOAUTH Authentication required.
2. 输入密码有两种方式:
① 输入任何命令前,在客户端界面执行:auth 123456
② 进入客户端时输入密码:/usr/local/bin/redis-cli -a 123456
其实auth本来应该一直被注释掉,因为向后兼容性并且大部分人不需要权限(例如:他们运行自己的服务)。
注意:由于Redis非常快,针对于一台好的机器一个外部的使用者可以每秒尝试150k次密码。这意味着你应该使用一个非常强壮的密码,否则很容易被破解。
二. 命令的重命名:
Redis支持在一个共享的环境中对危险命令的名字进行修改,例如:CONFIG这个命令可以重命名成其它很难猜到的名字,以便对内部使用的工具可用而对一般客户端不可用。
如:rename-command CONFIG othernameofconfig
同样,通过重命名为空字符串可以使一个命名失效。
如:rename-command CONFIG ""
注意:命名重命名将记录到AOF文件中 或 传输到slave,并且可能会引起问题。
【Redis主从复制】
一. Redis主从复制特点:
① master可以拥有多个slave
② 多个slave可以连接同一个master外,还可以连接到其它slave
③ 主从复制不会阻塞master,在同步数据时,master可以继续处理client请求
④ 提高系统的伸缩性
二. Redis主从复制过程:
① slave与master建立连接,发送sync同步命令
② master启动一个后台进程,将数据库快照保存到文件中,同时master主进程开始收集新的写命令并缓存。
③ 后台完成保存后,就将此文件发送给slave
④ slave将此文件保存到硬盘上
三. 配置Redis从服务器:
要设置IP使用:ifconfig eth0 192.168.117.224
vim /usr/local/etc/redis.conf # 找到slaveof 和 masterauth,配置如下
slaveof <masterip> <masterport> # slaveof 192.168.88.90 6379
masterauth <master-password> #masterauth 123456
现在在master里设置一个键,如:set name weichen;使用keys * 或 get name 查看slave是否能复制成功。
自Redis2.6后,slave默认将只读;在Redis从库中写,会出现如下提示:

不过这个可以在配置文件里面作更改(slave-read-only no),然后重启Redis即可允许写操作。
允许slave写操作,一方面对存储临时的数据有用(因为在和主库重新同步后,从库数据可以很容易被删除掉),但是如果由于配置错误导致客户端对其写操作则会引发问题。
slave只读的设计是防止在网络上暴露给不被信任的客户端,仅仅是针对误用Redis实例的一个保护层;但是一个只读的slave仍然默认输出所有管理命令,比如 CONFIG, DEBUG等等。在一定程度上,你可以通过使用 'rename-command' 跟踪所有的管理/危险命令来提高只读的slave的安全性。
同步复制策略:disk 或 socket。注意:目前无盘复制是实验性的。
repl-diskless-sync no
(用info查看当前Redis服务器信息)
通过几个参数可以判断是Reis主还是从,
role:master
slave0:192.168.88.90,6379,online
redis_version 3.0.3 包含下面几类服务器信息:
#Server
#Clients
#Memory
#Persistence
#Stats
#Replication
#CPU
#Cluster
注:只要Redis slave配置完成,任何时候slave打开,master数据都会自动复制。
【Redis队列/事务】
一. 使用multi打开一个队列,exec执行队列命令,discard取消队列;


二. 与MySQL的事务不同的是,Redis队列中的命令有未执行成功的,整个事务不会回滚。

三. 乐观锁:使用watch命令对key监控,如果在watch后,该key发生过改变,则事务将失败(即已过期);可以调用多次watch监控多个key;exec、discard、unwatch都会清除连接中的监控。
例如:上面的age现在是21,先对age进行watch age,此时multi打开队列进行等待,另一方面打开新终端,对age进行set age 30,设置成功后,在第一个终端内执行set age 40,exec执行,提示nil。

【Redis持久化】
一. Snapshotting(快照)。
Redis默认的持久化方式,将内存中的数据以快照的方式写入到二进制文件(dump.rdb)中,通过配置文件可以配置多少秒后有至少多少次修改就进行快照。
save 900 1 #900秒后有至少1次key的修改就持久化
save 300 10 #300秒后有至少10次key的修改就持久化
save 60 10000 #60秒后有至少10000次key的修改就持久化
阻止快照的方式:
① 注释掉上面三行
② 或 改成save ""。
二. Append Only File(AOF方式)
Redis默认异步将数据备份到磁盘,这种模式对许多应用足够了,但是如果Redis进程出现问题或断电,将导致最近几分钟的写数据丢失(根据配置文件中的保存时间点)。
Append Only File(AOF)是提供了更好持久性的可选的持久化模式。例如通过fsync(同步内存中所有已修改的文件数据到储存设备)的方式,Redis可以做到在服务器断电的情况下仅丢失一秒钟的写数据,或者在Redis进程错误的情况下丢失单条写数据。
AOF和数据库存储可以同时打开,如果在安装Redis时打开支持AOF,那么Redis将会使用AOF。(http://redis.io/topics/persistence)
appendonly no #默认AOF为关闭状态
appendfilename "appendonly.aof" #指定写入的文件名
调用fsync()告诉操作系统实时将数据写入磁盘而不是写入输出缓存,一些OS可能不会实时刷新清空缓存数据。为此,Redis提供三种不同的模式:
appendfsync always #速度慢,但最安全,每次write都异步持久化
appendfsync everysec #默认选项,每秒一次的异步保存,速度和数据安全的折中方案
appendfsync no #速度较快,不执行异步,让系统自动刷新数据
结论:如果能在考虑到数据丢失的情况下保证运行,可以使用Snapshotting 或者 相反的使用"always"(非常慢但比"everysec"安全一点)。
打开AOF模式(appendonly yes),etc/ 将新增appendonly.aof文件(存储的是操作内容):


五. 发布/订阅(pub/sub)
订阅者使用subscribe和psubscribe命令向Redis服务订阅消息,发布者通过publish命令向Redis服务发送信息时,订阅的客户端将收到消息。
如:终端1:subscribe m1
终端2:subscribe m1 m2
终端3:publish m1 abc;publish m2 hello;#publish命令返回频道订阅者数量,终端3发布的消息将实时显示到终端1和终端2





Link: http://www.cnblogs.com/farwish/p/4351828.html
[Redis]Redis高级特性的配置及使用的更多相关文章
- Redis进阶实践之五Redis的高级特性
一.引言 上一篇文章写了Redis的特征,使用场景,同时也介绍了Redis的基本数据类型,redis的数据类型是操作redis的基础,这个必须好好的掌握.今天我们开始介绍一些Redis的高级特性 ...
- Redis进阶实践之五Redis的高级特性(转载 5)
Redis进阶实践之五Redis的高级特性 一.引言 上一篇文章写了Redis的特征,使用场景,同时也介绍了Redis的基本数据类型,redis的数据类型是操作redis的基础,这个必须好好的掌握.今 ...
- Redis的高级特性哨兵
一.哨兵介绍 Redis Sentinel,即Redis哨兵,在Redis 2.8版本开始引入.哨兵的核心功能是主节点的自动故障转移.下面是Redis官方文档对于哨兵功能的描述: 监控(Monitor ...
- Redis的高级特性一览
更多内容,欢迎关注微信公众号:全菜工程师小辉.公众号回复关键词,领取免费学习资料. 应用场景 缓存系统:用于缓解数据库的高并发压力 计数器:使用Redis原子操作,用于社交网络的转发数,评论数,粉丝数 ...
- vSphere 高级特性FT配置与管理
内容预览: 1. Fault Tolerance 的工作方式 2. 5.X版本FT使用的vLockstep技术 3. 6.X版本FT使用的Fast Checkpointing技术 4. FT不支持的v ...
- redis多实例与主从同步及高级特性(数据过期机制,持久化存储)
redis多实例 创建redis的存储目录 vim /usr/local/redis/conf/redis.conf #修改redis的配置文件 dir /data/redis/ #将存储路径配置修改 ...
- Redis基础用法、高级特性与性能调优以及缓存穿透等分析
一.Redis介绍 Redis是一个开源的,基于内存的结构化数据存储媒介,可以作为数据库.缓存服务或消息服务使用.Redis支持多种数据结构,包括字符串.哈希表.链表.集合.有序集合.位图.Hype ...
- Redis基础、高级特性与性能调优
本文将从Redis的基本特性入手,通过讲述Redis的数据结构和主要命令对Redis的基本能力进行直观介绍.之后概览Redis提供的高级能力,并在部署.维护.性能调优等多个方面进行更深入的介绍和指导. ...
- Redis 基础、高级特性与性能调优
本文将从Redis的基本特性入手,通过讲述Redis的数据结构和主要命令对Redis的基本能力进行直观介绍.之后概览Redis提供的高级能力,并在部署.维护.性能调优等多个方面进行更深入的介绍和指导. ...
随机推荐
- 网易2018校招内推编程题-堆棋子-C++实现
链接:https://www.nowcoder.com/questionTerminal/27f3672f17f94a289f3de86b69f8a25b来源:牛客网 [编程题]堆棋子 热度指数:14 ...
- 搭建数据驱动框架第一步-实现一个构造函数,将对Excel文件的基本操作API都封装进去
Python处理Excel常用操作就是读和写,我的需求是需要在原excel文件中进行读写操作.共用到了两个模块xlrd和openpyxl,这两个模块都是需要自己去安装的.openpyxl只能用来处理 ...
- C# 网络通信功能 同步数据交互开发
前言 本文将使用一个Nuget公开的组件技术来实现一对多的数据通信功能,提供了一些简单的API,来方便的向服务器进行数据请求. 在visual studio 中的Nuget管理器中可以下载安装,也可以 ...
- SP四种作用范围pageContext、request、session、application 一看就懂
作用域规定的是变量的有效期限: 1.如果把变量放到pageContext里,就说明它的作用域是page,它的有效范围只在当前jsp页面里. 从把变量放到pageContext开始,到jsp页面结束 ...
- Linux第一节课学习笔记
我的目标是考过RHCE 开源软件有使用.复制.传播.收费.修改及创建衍生品自由,其中后二者只有开源软件才有,前四者开闭源共有.
- SQL Server 幻读 的真实案例
数据库中有表[01_SubjectiveScoreInfo],要实现表中的数据只被查出一次,此表数据量较大,有三四百万数据.表结构也确实不是很合理,无法修改表结构,即使是新增一个字段也会有相当大的修改 ...
- jsp后台取出request请求头
请求发到a2这个servlet 在这个servlet中请求转发到index.jsp 在jsp中如下的java代码 Enumeration headernames=request.getHeaderNa ...
- ubuntu deb pacakge 开发
安装构建工具 apt-get install pbuilder 推荐安装 sudo apt-get install build-essential autoconf automake \ autoto ...
- 在Cygwin中出现JAVA_HOME出现故障找不到出现故障
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u012516914/article/details/37689937 JAVA_HOME出现故障后查 ...
- C# ZipHelper C#公共类 -- ZipArchive实现压缩和解压
从网上找来个ZipArchive来压缩和解压缩的类,供参考吧 /******************************************************************** ...