摘要:
哨兵简介 1. redis提供了哨兵的命令,是一个独立的进程 2. 哨兵通过发送命令给节点,通过redis节点响应达到监控多个redis实例的运行情况 3. 当哨兵发现master宕机,会自动将从节点切换成主节点,并通知其他的从节点,修改配置文件切换主机 4. 默认端口是26379 哨兵的主要任务 阅读全文
摘要:
相关配置 a. replica-read-only yes: 从节点开启只读模式 b. master-auth xxxx: 主节点访问密码 c. replicaof ip 端口:从哪个主节点进行复制 相关命令 info replication查看主从信息 主从复制分类 主从刚连接的时候,会进行全量同 阅读全文
摘要:
在使用Redis的时候,可以设置key的过期时间,但是当key到达过期时间时,是否会被redis立即删除?答案是no。这里就涉及redis key的过期策略:定时删除和惰性删除 定期删除 隔一段时间,随机抽取一些设置过期时间的key,检查其是否过期,如果过期就删除 惰性删除 当客户访问数据时,如果过 阅读全文
摘要:
redis支持两种持久化方式RDB(Redis Database)和AOF(Append only file)。 1. RDB a. 在指定的时间将内存中的数据集快照写入磁盘,默认存储文件的名称为dump.rdb b. RDB文件是一个紧凑压缩的二进制文件 c. 恢复大数据集的时候速度比AOF要快, 阅读全文
摘要:
集群原理 哈希槽:redis共16384个哈希槽,数据会根据CRC16(key) mod 16384,决定存储在哪个哈希槽,这种将数据存储在不同节点不同哈希槽的行为被称为数据分片 从节点是没有哈希槽的,只有主节点才有 存储/读取的时候,先进行运算,如果计算的槽位在当前节点则直接进行存取,如果不在则进 阅读全文
摘要:
总体来说,缓存在使用的过程中主要面临以下几个问题: 1. 缓存击穿(某个热点数据的key失效了) 缓存中无数据,但是数据库中有数据,由于是热点key,如果同一时间大量请求进来会导致数据库压力大增 2. 缓存雪崩 与缓存击穿类似,只不过缓存雪崩是多个热点key同时失效 3. 缓存穿透 查询不存在的数据 阅读全文
摘要:
实际项目中,如果使用统一的key的生成方式,可以自定义KeyGenerator。 参考如下代码: 点击查看代码 ``` @Bean public KeyGenerator keyGenerator() { return new KeyGenerator() { @Override public Ob 阅读全文
摘要:
从缓存中移除相应的数据,触发缓存删除操作 * value:缓存名称 * key:缓存的key规则,可以使用SpringEL,默认是方法参数组合 * beforeInvocation: 缓存的清除在方法调用之前执行还是之后执行,默认为false 参考如下代码: 点击查看代码 ``` @Override 阅读全文
摘要:
根据方法的请求参数对结果进行缓存,每次都会触发真实的方法调用* * value:缓存名称 * 缓存的key规则,可以使用SpringEL,默认是方法参数组合 * 参数condition:满足condition才缓存 参照如下的例子: 点击查看代码 ``` @Override @CachePut(va 阅读全文
摘要:
* 可以标记在方法上,也可以标记在类上 * 参数key:缓存的key规则,可以使用SpringEL,默认是方法参数组合 * 参数value:缓存名称,可以指定多个 * 参数condition:满足condition才缓存 先看下面简单的例子: 点击查看代码 ``` @Override @Cachea 阅读全文