欢迎来到天天文库
浏览记录
ID:34757802
大小:315.16 KB
页数:24页
时间:2019-03-10
《如何正确的使用redis》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、如何正确地使用Redis1.Redis特性介绍1.1Redis概述Redis是一款依据BSD开源协议发行的高性能,使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value存储系统(cacheandstore),并提供多种语言的API。它起步较晚,发展迅速,目前已被许多大型机构采用。它通常被称为数据结构服务器,因为值(value)可以是字符串(String),哈希(hashes),列表(list),集合(sets)和有序集合(sortedsets)等类型。1.性能极高–Redis能支持超过100K每秒的读写频率。
2、2.丰富的数据类型–Redis支持二进制案例的Strings,Lists,Hashes,Sets及SortedSets数据类型操作。3.原子–Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行,我们能非常方便得实现事务。4.Redis支持publish/subscribe,通知,key过期等重要特性。5.Redis内存中的数据支持实时持久化,非常安全。6.新版本Redis支持集群。Redis在最近发布了3.0.6稳定版,我把最新的3.0.6稳定版的配置翻译了一遍,获益匪浅,基本上对这个版本的Redis的很
3、多细节清晰了很多,下面针对一些重要配置介绍下Redis的相关特性。1.2Redis配置花了三天时间,把REDIS3.0.6英文版大部分都翻译过来了,地址:http://q.fireflyclub.org/?/article/191.3内存快照某个时间点Redis服务器内存中的内容我们称之为快照,Redis会自动快照保存到磁盘,调用BGSAVE能手动触发快照保存,保存快照的动作是后台进程完成的,保存快照期间其他客户端仍然和可以读写REDIS服务器。后台保存快照到磁盘会占用大量内存。如果调用SAVE命令保存内存中的数据到磁盘,将阻塞客户端请
4、求,直到保存完毕。调用SHUTDOWN命令,Redis服务器会先调用SAVE,所有数据持久化到磁盘之后才会真正退出。在Redis的配置文件中可以配置内存数据持久化的触发条件#save<时间><变更次数>#两个条件同时满足,发生一次落地本地磁盘动作,下面三个配置是或的关系#如果不想落地内存中的数据,直接注释掉下面三个配置即可#如果配置成save"",之前落地的数据都可能被删除save9001save30010save60100001.1主从同步用slaveof的配置来设置本机的Redis作为从实例,实时从主实例读取数据,成为其镜像。主要是
5、高可用场景需要本功能。以下是Redis主从同步的一些特性:1.同一个Master可以同步多个Slaves;2.Slave同样可以接受其它Slaves的连接和同步请求,这样可以有效的分载Master的同步压力。因此我们可以将Redis的Replication架构视为图结构;3.MasterServer是以非阻塞的方式为Slaves提供服务。所以在Master-Slave同步期间,客户端仍然可以提交查询或修改请求;4.SlaveServer同样是以非阻塞的方式完成数据同步。在同步期间,如果有客户端提交查询请求,Redis则返回同步之前的数据
6、;5.为了分载Master的读操作压力,Slave服务器可以为客户端提供只读操作的服务,写服务仍然必须由Master来完成。即便如此,系统的伸缩性还是得到了很大的提高;6.Master可以将数据快照保存操作交给Slaves完成,从而避免了在Master中要有独立的进程来完成此操作,减轻Master的压力;7.Redis的数据同步是异步进行的,你可以配置主实例在和从实例断掉连接的时候停止接受客户端发过来的写请求,从而保证数据的一致性。8.同步是自动完成的,不需要人工干预。主从之间的网络短暂的断开后,从再次连上主之后,会自动从上次断开的时候
7、同步数据。9.当新的从实例连入主实例,或者从实例断开连接时间比较长,再连入主实例的时候,为了保证数据一致,主实例会将全量数据同步给从实例。这种主要有两种模式:文件模式:主实例创建一个任务去写DB文件到磁盘,文件创建完毕后,主实例增量方式读取文件中的数据传输给从实例;使用Disk-backed模式同步数据有个好处就是,这个文件一旦生成,多个slave实例过来全量同步,都可以重用这一个文件;网络模式:主实例创建一个任务把全量数据直接写入从实例的socket连接上,数据不落地。;使用Diskless模式同步全量数据,一旦一个全量同步行为开始了
8、,其他slave实例的同步请求过来时,只能先排到队列里面去等下一次全量同步开始。使用diskless的数据同步时,master实例会等一会(时间可配),看看这段时间内是否有多个slave实例同时请求全量同步
此文档下载收益归作者所有