#Redis
Redis常用命令和应用场景
Redis 常用命令,应用场景,key 的命名规范
简单动态字符串
Redis 的字符串经过这样设计,不仅可以存储字符串型的数据,还可以存储二进制数据。原生字符串是通过末尾的 \0 判断字符串的结束,但是这样就让二进制数据无法存储,因为你不确定字符串哪里是完整的部分。但现在我们通过 len 成员就可以避免这个问题,实现二进制数据存储
实现海量数据快速查找之哈希表
学习源码数据结构,要学会从基础开始,并且结合已有资料来加快整个进程。学习源码的思想是最重要的。
Redis 事件驱动框架思路浅读
今天才体会到,阅读这种设计很多业务的代码,是相当痛苦的。就算已经明确是阅读 Reactor 模块,可是找到自己的部分也是相当痛苦的,好在结合网上的资料走过来了。只是了解 Redis 的网络模型,也不会去深究源码本身
Redis集群
Cluster模式是Redis的一种高级集群模式,它通过数据分片和分布式存储实现了负载均衡和高可用性。在Cluster模式下,Redis将所有的键值对数据分散在多个节点上。每个节点负责一部分数据,称为槽位。通过对数据的分片,Cluster模式可以突破单节点的内存限制,实现更大规模的数据存储
Redis哨兵
此前,我们非常依赖主服务器,因为所有的写命令都首先会给主服务器,那如果主服务器死掉,其它从服务器该怎么办?顶替!选择一个从服务器来担任主服务器的职责。Redis 提供哨兵机制(哨兵其实是一个运行在特殊模式下的 Redis 进程,所以它也是一个节点),它会检测主节点是否存活,如果发现主节点挂掉,就会选举一个从节点切换为主节点,并且把新主节点的相关信息通知给从节点和客户端。总结就是主要负责三件事情:监控、选主、通知
Redis主从复制
之前介绍 Redis 持久化是针对单台主机,如果这台主机死掉,不能对外提供服务,那持久化策略也没有发挥的余地。为了避免这种情况,那就需要能够有多台 Redis 服务器,哪怕其中一台死掉,再选择一个允许正常的 Redis 服务器顶上,继续正常服务。但我们必须要保证数据的一致性,所以引出接下来介绍的主从复制
数据库和缓存如何保持一致性?
先更新数据库,再删除缓存也是会出现数据不一致性的问题,但是在实际中,这个问题出现的概率并不高。因为缓存的写入通常要远远快于数据库的写入
缓存雪崩、缓存击穿和缓存穿透
Redis 缓存的数据来源于 MySQL数据库,前者作用于内存,后者作用于磁盘,内存访问比磁盘快很多。题目中的缓存失败情况从这两个数据库展开讨论
RDB 持久化
如果你用过虚拟机的快照,并且熟悉前面所讲的 AOF 日志,本节内容读来轻轻松松
12