2020年10月14日
摘要: 1 持久化机制 Redis 速度快,很大一部分原因是因为它所有的数据都存储在内存中。如果断电或者宕机,都会导致内存中的数据丢失。为了实现重启后数据不丢失,Redis 提供了两种持久 化的方案,一种是 RDB 快照(Redis DataBase),一种是 AOF(Append Only File)。 阅读全文
posted @ 2020-10-14 16:55 会说话的丶猫 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 1 内存回收 Reids 所有的数据都是存储在内存中的,在某些情况下需要对占用的内存空间进行回收。内存回收主要分为两类,一类是 key 过期,一类是内存使用达到上限(max_memory) 触发内存淘汰。 1.1 过期策略 要实现 key 过期,我们有几种思路。 1.1.1 定时过期(主动淘汰) 每 阅读全文
posted @ 2020-10-14 16:08 会说话的丶猫 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 1.1 为什么要用事务 我们知道 Redis 的单个命令是原子性的(比如 get set mget mset),如果涉及到多个命令的时候,需要把多个命令作为一个不可分割的处理序列,就需要用到事务。 例如我们之前说的用 setnx 实现分布式锁,我们先 set,然后设置对 key 设置 expire, 阅读全文
posted @ 2020-10-14 15:32 会说话的丶猫 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 1.1 列表的局限 前面我们说通过队列的 rpush 和 lpop 可以实现消息队列(队尾进队头出),但是消费者需要不停地调用 lpop 查看 List 中是否有等待处理的消息(比如写一个 while 循环)。 为了减少通信的消耗,可以 sleep()一段时间再消费,但是会有两个问题: 1、如果生产 阅读全文
posted @ 2020-10-14 14:57 会说话的丶猫 阅读(300) 评论(0) 推荐(1) 编辑