
Redis
redis是一个key-value存储系统,系统的学习Redis相关和记录理解
骑驴的小牧童
小小的梦想,用心去守护
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Redis 缓存穿透 + 缓存雪崩 + 缓存击穿的原因和解决方案
在生产环境中,会因为很多的原因造成访问请求绕过了缓存,都需要访问数据库持久层,虽然对Redsi缓存服务器不会造成影响,但是数据库的负载就会增大,使缓存的作用降低一、缓存穿透 缓存穿透是指查询一个根本不存在的数据,缓存层和持久层都不会命中。在日常工作中出于容错的考虑,如果从持久层查不到数据则不写入缓存层,缓存穿透将导致不存在的数据每次请求都要到持久层去查询,失去了缓...原创 2020-03-30 21:03:20 · 51646 阅读 · 13 评论 -
Redis 缓存更新策略
Redis缓存设计一、缓存的收益与成本1.1 收益 加速读写:因为缓存通常都是全内存的(例如Redis、Memcache),而存储层通常读写性能不够强悍(例如MySQL),内存读写的速度远远高于磁盘I/O。通过缓存的使用可以有效地加速读写,优化用户体验。 降低后端负载:帮助后端减少访问量(Mysql设置有最大连接数,如果大量的访问同时达到数据库,而磁盘I/O的速度又很慢,很...原创 2020-03-30 18:19:19 · 2304 阅读 · 0 评论 -
Redis cluster集群 故障转移
Redis集群自身实现了高可用,通过增加Slave从节点做standby数据副本,能够实现故障自动转移,节点之间通过gossip协议交换状态信息,用投票机制完成Slave到Master的角色提升。当集群内少量节点出现故障时通过自动故障转移保证集群可以正常对外提供服务。一、故障发现 Redis集群内节点通过ping/pong消息实现节点通信,消息不但可以传播节点槽...原创 2020-03-27 17:47:51 · 4398 阅读 · 0 评论 -
Redis cluster 扩容缩容重新分片
一、增加节点 Redis集群提供了灵活的节点扩容和收缩方案。在不影响集群对外服务的情况下,可以为集群添加节点进行扩容也可以下线部分节点进行缩容。扩容与缩容的本质是,对Redis的槽进行重新的分配。 集群现有6379、6380、6381 三个主节点,因为数据压力,增加一个主节点6385,需要对之前槽方案进行重新分配,并进行数据迁移二、重新分片流程原命...原创 2020-03-27 16:41:34 · 2341 阅读 · 1 评论 -
Redis cluster集群搭建
一、Redis数据分区思考: 主从复制是通过将master上的数据全量的复制到一个或多个节点上,这是一种通过数据冗余的形式来保证数据的安全性,但是当主节点发生故障时需要从它的从节点中选出一个作为新的主节点,剩下的从节点要与这个新的主节点进行全量复制,如果节点的数据量非常大的时候会代来两个主要问题,网络阻塞和从节点恢复数据会导致进程阻塞,最终会影响到对外提供服务的稳定性。 解决这个问题的关...原创 2020-03-26 20:53:53 · 251 阅读 · 0 评论 -
Redis哨兵模式原理
Redis哨兵模式原理原创 2020-03-25 19:00:29 · 1528 阅读 · 0 评论 -
Redis部署哨兵模式
Redis部署哨兵模式一、哨兵模式二、部署哨兵原创 2020-03-24 19:08:18 · 446 阅读 · 0 评论 -
Redis 主从复制及其原理
一、主从复制概述与作用1.1 概述当Reids 服务器发生单点故障磁盘损坏时,不管是RDB还是AOF机制都无法恢复数据(RDB和AOF都是生成文件到本机磁盘上),多台服务器进行主从复制可以解决这种问题,实现高可用(值得注意的地方是:主从复制需要每台服务器的版本一样,因为其实基于RDB数据持久化,不同的版本RDB 文件数据格式不一样。RDB相对于AOF 数据文件体积小,速度快)主从复制:是指将...原创 2020-03-11 22:57:11 · 415 阅读 · 0 评论 -
Redis 发布订阅机制
一、概述Redis提供了基于“发布/订阅”模式的消息机制,当一个客户端通过 PUBLISH 命令向订阅者发送信息的时候,我们称这个客户端为发布者(publisher)。而当一个客户端使用 SUBSCRIBE 或者 PSUBSCRIBE命令接收信息的时候,我们称这个客户端为订阅者(subscriber)。为了解耦发布者(publisher)和订阅者(subscriber)之间的关系,Redis ...原创 2020-03-08 16:21:17 · 890 阅读 · 0 评论 -
使用 Redis - Bitmaps 进行快速、简单、实时统计
一、BitmapsRedis提供的Bitmaps这个“数据结构”可以实现对位的操作。Bitmaps本身不是一种数据结构,实际上就是字符串,但是它可以对字符串的位进行操作。可以把Bitmaps想象成一个以位为单位数组,数组中的每个单元只能存0或者1,数组的下标在bitmaps中叫做偏移量。单个bitmaps的最大长度是512MB,即2^32个比特位。位数组的顺序和平时书写的顺序时完全相反的,...原创 2020-03-08 11:49:28 · 925 阅读 · 0 评论 -
Redis 事务详解
一、Redis 事务和Mysql 事务的区别1、mysql中只有使用了InnoDB引擎的数据库或表才支持事务;2、使用“事务”的目的是:可以一次执行多个命令,本质是一组命令的集合。一个事务中的所有命令都会序列化,按顺序串行化的执行而不会被其他命令插入二、Redis 事务指令Redis事务涉及到MULTI, EXEC, DISCARD, WATCH和UNWATCH这五个命令:MULTI...原创 2020-03-07 16:39:59 · 344 阅读 · 0 评论 -
Redis Pipeline
RTT(Round-Trip Time): 往返时间。在计算机网络中它是一个重要的性能指标,表示从发送端发送数据开始, 到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认),总共经历的时间。RTT在不同网络环境下会有不同,例如同机房和同机器会比较快,跨机房跨地区会比较慢。Pipeline(流水线)机制能改善上面这类问题,它能将一组Redis命令进行组装,通过一次RTT传输...原创 2020-03-05 21:48:02 · 267 阅读 · 0 评论 -
Redis慢日志查询
一、概述Redis的慢日志查询功能用于记录执行时间超过给定时长的命令,用户可以通过这个功能产生的日志来监视和优化查询速度。二、一条客户端命令的生命周期命令发送命令排队命令执行返回结果注意: 慢查询只统计命令执行的时间,所以没有慢查询并不代表客户端没有超时问题三、预设阀值怎么设置slowlog-log-slower-than,它的单位是微秒,默认值是10000,0为记录所有命...原创 2020-03-01 17:23:30 · 1578 阅读 · 0 评论 -
Redis持久化方式RDB和AOF
Redis是一个可基于内存亦可持久化的日志型、Key-Value数据库,提供了内存数据持久化到文件的两种方式,一种是写RDB文件方式,另一种是写AOF文件,默认执行的是RDB文件持久化方式。Reids在启动之后默认16个库。当它作为缓存服务器使用时,底层会有其他的持久化数据库做数据支撑,发挥Redis作为内存数据库访问快的优势,不必太多的考虑服务器宕机或者进程结束造成数据丢失(缓存大部分数据都来源...原创 2020-02-29 16:32:33 · 221 阅读 · 0 评论