redis总结万能手册,熟悉不等于精通
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">标题:redis总结万能手册,熟悉不等于精通;</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">引言:<span style="color: black;">平常</span>工作总结,自动化安装,应用接入,测试……</p>
<h2 style="color: black; text-align: left; margin-bottom: 10px;">1、redis简介</h2>redis是一个开源的基于内存操作的数据结构存储系统,它<span style="color: black;">能够</span>用作数据库、缓存和<span style="color: black;">信息</span>中间件;支持多种类型的数据结构,如 字符串(strings),hash表(hashes), 有序列表(lists),集合(sets),有序集合(sorted sets),范围<span style="color: black;">查找</span>,bitmaps,hyperloglogs 和 地理空间(geospatial);内置了节点复制(replication),LUA 脚本(Lua scripting),LRU驱动事件(LRU eviction),事务(transactions)和<span style="color: black;">区别</span>级别的 磁盘持久化(persistence),<span style="color: black;">能够</span><span style="color: black;">经过</span> 哨兵(Sentinel)和集群(Cluster)<span style="color: black;">供给</span>高可用。<h3 style="color: black; text-align: left; margin-bottom: 10px;">1.1、特性</h3>基于内存的操作,<span style="color: black;">因此</span>速度快,官方数据单节点读 110000次/s,写81000次/s。用C语言实现,离操作系统更近。单线程架构,6.0<span style="color: black;">起始</span>支持多线程(CPU、IO读写负荷);支持数据持久化,异步<span style="color: black;">保留</span>到硬盘,防宕机丢失。持久化模式位 RDB 和 AOF;多种数据结构:<span style="color: black;">不仅</span>支持简单的 key-value 类型数据,还支持:字符串、hash、列表、集合、有序集合;客户端支持多种编程语言,功能丰富,<span style="color: black;">颁布</span>订阅,事务,过期,超大Map,布隆过滤器;简单稳定,源码少,单线程模型,所有的操作都是原子性的,支持操作合并的统一原子性执行;支持数据备份,分片存储,主从复制……满足<span style="color: black;">各样</span>融灾场景,<span style="color: black;">持有</span>哨兵监控机制;<h3 style="color: black; text-align: left; margin-bottom: 10px;">1.2、<span style="color: black;">运用</span>场景</h3>
<h3 style="color: black; text-align: left; margin-bottom: 10px;">数据缓存</h3>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">业务数据库永远都是最<span style="color: black;">敏锐</span>的环节,最容易达到业务瓶颈,<span style="color: black;">亦</span>最应该被<span style="color: black;">守护</span>。<span style="color: black;">做为</span>核心的存储结构,它的扩容成本和故障成本都比较高,采用redis架设数据缓存<span style="color: black;">便是</span>给数据库套上了缓冲罩,<span style="color: black;">能够</span>是多层,<span style="color: black;">能够</span>是多节点;</p>
<h3 style="color: black; text-align: left; margin-bottom: 10px;">计数器</h3>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">社交活动的点赞,转发,排行榜单,API接口的限流计数……</p>
<h3 style="color: black; text-align: left; margin-bottom: 10px;"><span style="color: black;">信息</span>队列</h3>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">功效</span>于应用解耦,业务的异步处理,还能够<span style="color: black;">做为</span>阀门,<span style="color: black;">掌控</span>队列长度来削峰处理;</p>
<h3 style="color: black; text-align: left; margin-bottom: 10px;">分布式锁</h3>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">做为</span>分布式应用<span style="color: black;">安排</span>下的中间件,在并发减库存时<span style="color: black;">必须</span>时刻关注<span style="color: black;">是不是</span>超减;</p>
<h3 style="color: black; text-align: left; margin-bottom: 10px;"><span style="color: black;">新闻</span>弹幕</h3>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">视频弹幕原理是先缓存了一批,<span style="color: black;">而后</span>再集中推送出去,<span style="color: black;">否则</span>数以万计,百万计<span style="color: black;">同期</span>在线的客户端,<span style="color: black;">需求</span>实时交换弹幕,<span style="color: black;">针对</span>网络吞吐<span style="color: black;">来讲</span>,<span style="color: black;">指的是</span>数级别的,设备成本和<span style="color: black;">守护</span>成本巨大,故此,采用先采集弹幕,<span style="color: black;">而后</span><span style="color: black;">按时</span>全推的方式,<span style="color: black;">经过</span><span style="color: black;">加强</span>数据包<span style="color: black;">体积</span>,来缩减吞吐量,<span style="color: black;">亦</span>是redis常用的<span style="color: black;">处理</span><span style="color: black;">方法</span>。</p>
<h3 style="color: black; text-align: left; margin-bottom: 10px;">1.3、高并发原理</h3><span style="color: black;">做为</span>纯内存数据库,一般都是简单的读写操作,线程占用的时间少,时间的花费<span style="color: black;">重点</span>集中在网络通信IO上,<span style="color: black;">因此</span>读取速度快;redis<span style="color: black;">运用</span>的是非阻塞 IO,<span style="color: black;">保准</span>了高性能的吞吐量,I/O的多路复用来监听多个socket,能更好的与单线程模型对接;redis采用了单线程的模型,<span style="color: black;">保准</span>了<span style="color: black;">每一个</span>操作的原子性,<span style="color: black;">亦</span>减少了线程的上下文切换和竞争;redis存储结构多样化,<span style="color: black;">区别</span>的数据结构对数据存储进行了优化,<span style="color: black;">保准</span>读取时索引的速度,如压缩表,对短数据进行压缩存储,再如跳表,<span style="color: black;">运用</span>有序的数据结构加快读取的速度;<h3 style="color: black; text-align: left; margin-bottom: 10px;">1.3.1、IO多路复用</h3>误区。redis是直接操作内存的,不存在磁盘I/O。<span style="color: black;">这儿</span>的<span style="color: black;">触及</span>到的IO,<span style="color: black;">重点</span>是客户端与服务器之间的socket通信IO,命令是<span style="color: black;">经过</span>socket传输到redis服务的,且<span style="color: black;">按照</span>分布式应用的<span style="color: black;">安排</span>,redis客户端会有多个,<span style="color: black;">因此</span><span style="color: black;">叫作</span>为多路复用。<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">redis<span style="color: black;">经过</span><span style="color: black;">运用</span>I/O多路复用程序来监听多个socket,将产生事件的 socket 压入内存队列中,内部<span style="color: black;">运用</span>文件事件分发的架构,<span style="color: black;">按照</span> socket 上的事件类型来分发给对应的事件处理器进行处理 ,这个事件分发是单线程的,既能实现高性能网络通讯模型,又<span style="color: black;">能够</span>很好的与redis以单线程运行的模块进行对接,保持了redis内部单线程设计的简单性。</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">重要</span>词,多个socket(客户端),I/O多路复用程序(epoll),socket队列,事件分发器,事件处理器</p>
外链发布论坛学习网络优化SEO。 软文发布平台 http://www.fok120.com/ 你的留言真是温暖如春,让我感受到了无尽的支持与鼓励。 楼主节操掉了,还不快捡起来!
页:
[1]