Redis
奋努的bird
这个作者很懒,什么都没留下…
展开
-
造就Redis高性能的三个因素
1、纯内存访问,Redis将所有数据放在内存中,内存的响应时间大约为100纳秒,这时Redis达到每秒万级别访问的重要基础;2、非阻塞I/O,Redis使用epoll作为I/O多路复用技术的实现,在加上Redis自身的事件处理模型将epoll中的链接、读写、关闭都转换为事件,不在网络I/O上浪费过多的时间;3、单线程避免了线程切换和竞态产生的消耗。In a word,纯内存存储、IO多路复用技术、...原创 2018-07-15 09:00:27 · 4383 阅读 · 0 评论 -
Redis使用场景
1、缓存缓存机制几乎在所有的大型网站都有使用,合理地使用缓存不仅可以加快数据的访问速度,而且能够有效地降低后端数据库的压力。Redis提供了键过期时间设置,并且也提供了灵活控制最大内存和内存溢出后的淘汰策略。2、排行榜系统按照热度排名的排行榜,按照发布时间的排行榜,按照各种复杂维度计算出的排行榜,Redis提供了列表和有序集合数据结构,合理地使用这些数据结构可以很方便地构建各种排行榜系统。3、当计...原创 2018-07-15 09:18:48 · 246 阅读 · 0 评论 -
Redis持久化
Redis支持RDB和AOF两种持久化机制,持久化功能有效地避免因进程退出造成地数据丢失问题,当下次重启时利用之前持久化单位文件即可实现数据恢复。1、RDB持久化是把当前进程数据生成快照保存到硬盘的过程,触发RDB持久化过程分为手动触发和自动触发。手动触发分别对应save和bgsave命令:save命令,阻塞当前Redis服务器,直到RDB过程完成为止,对于内存较大的实例会造成长时间阻塞,线上环境...原创 2018-07-15 11:52:57 · 198 阅读 · 0 评论 -
Redis复制原理
1、在从节点执行slaveof命令后,从节点只保存主节点(master)的地址信息便直接返回,此时复制流程还没开始;2、从节点(slave)内部通过每秒运行的定时任务维护复制相关逻辑,当定时任务发现新的主节点后,会尝试与该节点建立网络连接,即主从建立socket连接;3、发送ping命令,主从连接建立成功后从节点发送ping请求进行首次通信,ping请求的主要目的是:检测主从之间网络套接字是否可以...原创 2018-07-15 16:48:26 · 209 阅读 · 0 评论 -
Redis内存管理
Redis通过控制内存上限和回收策略实现内存管理,使用maxmemory参数限制最大可用内存,限制内存的主要目的是:用于缓存场景,当超出内存上限时使用LRU等删除策略释放空间;防止所用内存超过服务器的物理内存。内存回收的策略1、删除过期键对象,由于内存中保存了大量的键,维护键精准的过期删除机制会导致消耗大量的CPU,对于单线程的Redis来说成本过高,因此,Redis采用惰性删除和定时任务删除机制...原创 2018-07-15 17:23:37 · 1585 阅读 · 0 评论 -
Redis Sentinel(哨兵)
当主节点出现故障时,Redis Sentinel能自动完成故障发现和故障转移,并通知应用方,从而实现真正的高可用。Redis Sentinel是一个分布式架构,其中包含若干个Sentinel节点和数据节点,每个Sentinel节点会对数据节点和其余Sentinel节点进行监控,当它发现节点不可达时,会对节点做下线标识。如果被标识的是主节点,它还会和其他Sentinel节点进行"协商",当大多数Se...原创 2018-07-15 17:50:53 · 425 阅读 · 0 评论