redis特性和集群详解第二节课cluster_第1页
redis特性和集群详解第二节课cluster_第2页
redis特性和集群详解第二节课cluster_第3页
redis特性和集群详解第二节课cluster_第4页
redis特性和集群详解第二节课cluster_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本节课目标1Redis常用命令和特性(数据类型、持久化、事务、发布订阅等2RedisClusterRedis安wgettarxvfredis-3.2.9.tar.gzcdredis-makeinstallPREFIX=/root/svr/redis-3.2.9安装src/redis-server../redis.conf&#启动src/redis-cli#客户端连接Ps:redis.conf文件KeysbitExistskeykeystringvaluekeystringvaluekey0,nxnotexist的意删除某1Expire过期时间(单位秒TTLkey失效,keykey对应的值string类型value,并指定此键值对应的有效期一次设置多个key的值,成功返回ok表示所有的值都设置了,失败返回0表示没有任key的值,并返回key的旧值keykeynilkey的值做加加操作,incrintvalue会返回错误,incr一个不存在的key,则设置key为1incrkeykeyvaluekey的值做的是减减操作,decrkeykey为-decrkeyvalue,取指keyvalue值的长度persistxxx(取消过期时间选择数据库(0-15库Select0moveage1//age1Randomkey随机返回一个Rename重命Type回数据类测试连接是否可以成功Quit出连DbsizekeyInforedisConfigget|set示与修改配String字符串格式setkeystring类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg或者序列化的对象。string类型是Redis最基本的数据类型,一个键最大能512MBHash(哈希格式:hmset key1value1key2Redishash是一个键值(key=>value)Redishash是一个string类型的field和value的映射表,hash特别适合用于对象List(列表Redis(左格式: 在key对应list的头部添加字符串元素格式:rpush 在key对应list的尾部添加字符串元素格式:lremname keylistcountvalue相同的元素格式:llennamekeylistSet(集合格式: RedisSetstringzset(sortedset:有序集格式: namescoreRediszsetsetstring类型元素的集合,double类型的分数。redis正是通过分数来为集合中的成员zset的成员是唯一的,但分数(score)事redis对事务的支持目前还比较简单。redis只能保证一个 发起的事务中令可 令。由于redis是单线程来处理所有的请求的所以做到这点是很容易的。一般情况下redis在接受到一个 令后会立即处理并返回处理结果,但是当一个在接中发出multi命令有,这个连接会进入一个事务上下文,该连接后续令并不是立即执行,而是先放exec命令后,redis会顺序的执行队列中的所有命令。并将所有命令的运行结果打包到一起返回给.然后此连接就结束事务上下文。开启事物:exec取消事物:discard发布与订阅布订阅s)是一种消息通信模式,主要的目的是解耦消息发布者和消息订阅者之间的b代码级别耦合也解决两者在物理部署上的耦合。在redis实现是SUBSCRIBE(订阅)、UNSUBSCRIBE(取消)和PUBLISH(推送)生产PSUBSCRIBE支持*Redis提供了两种持久化方式:RDB(默认)rdbRedisDataBaseRDB功能函数rdbSave(生成RDB文件)和rdbLoad(从文件加载内存)两个函的RDB文件将替换已有的RDB文件。RDBBGSAVE则fork出一个子子进程负责调用rdbSave并在保存完成之后向主进程发送信rdbSaveRedisBGSAVE执行期rdbLoad函数:是redis服务重启或者启动的时候回加载保存到磁盘的RDB文件加载到内存中结构 |REDIS|RDB-VERSION|SELECT-DB|KEY-VALUE-PAIRS|EOF|CHECK-SUM 保存策略save900save3001030010keysave60AofAppend-onlyfile每当执行服务器(定时)任务或者函数时flushAppendOnlyFile函数都会被调用,这个函数执aof写入保存WRITE:根据条件,将aof_buf中的缓存写入到AOF文件SAVEfsyncfdatasyncAOF文件保存到磁盘中。两个步骤都需要根据一定的条件来执行,Redis提供了三种条件。保存策略模 WRITE是阻塞

SAVE

停机时丢失的数据操作系统最后一次对AOF

阻 阻

SAVE

阻 不阻 一般情况下不超过2秒钟阻 阻 最多只丢失一个命令的数据结构内容是redis通讯协议(RESP)格式令文本总结:RDB:数据.AOF:数据+命令AOFRDBaof。:通常为被方(master)主动将数据发送到方(slave),方接收到数据在当前实例,最终目的是为了保证双方的数据一致,master的压力。1、slavemastersync4、master发送完RDB文件,将缓存令也发给slave。5、masterslave主从1步:cpreids.conf2步:Vim3步:slaveof192.168.0.126379(master的地址)4步:Vimredis.conf(master)第5步 0.0.0.0#无ip都可以第6步:./redis-server 第7步./redis-server Ps:setgetinfo1、masterset值,slave2、configget集群是一个提供多个Redis(分布式)节点间共享数据的程序集Redis16384hash个槽(slot)16384个分片(hashslot)RedisCluster16384(0~16383)RedisClusterslot16384个哈希槽中keyCRC16校验和。3节点A(6381)包含0到5499B(6382)5500到10999号哈希槽.节点C(6383)11000到16383这种结构很容易添加或者删除节点.比如如果新添加个节点D,我需要从节点A,B,C中D上A,ABC节点上,然后将没有任何槽的A节点从集群中移除即可.由于从一个节点将哈希槽移动到另一个节点并不会停止服数据迁slot(槽)key的迁移,这个功能很重要,极大地方便了集群做线性扩MasterA1、2、3slotMasterBslot迁移的中间状态下,slot1、2、3MasterA节点的状态表现为MIGRATING(迁移),MasterB节点的状态表现为IMPORTING()。nodeIMPORTING状被迁移slot在目标MasterB节点中出现的一种状态,准备迁移slotMaterAMasterBslotIMPORTING键空间迁键空间迁移是指当满足了slot迁移前提的情况下通过相关命令将slot12、3中的键空间从MasterA节点转移到MasterB节点。此时刷新node的映射关&高可用集群的节点内置了和高可用特性特点:1、节点自动发2、slave->master,集群容错3、Hotresharding:分片4、基于配置(nodes-port.conf)的集群管5、客户端与redis节点直连、不需要中 层6、所有的redis节点彼此互联( -PONG机制),二进制协议优化传输速redis-trib.rbredis-trib.rb是redis作者用ruby完成的是对rediscluster管理工具,集成在redis的源码src 名作redisslot增加节点:./redis-trib.rbadd-nodeip:port第一个参数是新节点的地址,第二个参数是任意一个已经存在的节点的IP和端口.移除节点:redis-tribdel-node ip:port`<node-id>`clusterreplicate

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论