如何正确的使用Redis剖析.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
如何正确的使用Redis剖析

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

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档