![](https://img-blog.csdnimg.cn/direct/2d25cfca579b4652b31f9b096da2b44f.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Redis知识点总结
文章平均质量分 94
图文并茂讲解Redis的各个知识点,包括Redis数据结构、Redis高性能IO模型、Redis持久化机制、内存淘汰策略、惰性删除机制、如何保证缓存与数据库中的数据一致性、Redis实现分布式锁、主从同步、哨兵模式、集群、缓存雪崩、缓存穿透、缓存击穿、Redis高级用法等各方面的知识。
黄俊懿
放下期待、不抱希望地努力,踏踏实实,能走多远是多远。
展开
-
【Redis知识点总结】(七)——缓存雪崩、缓存穿透、缓存击穿、Redis高级用法
假设我们系统有1亿个用户,我们要统计在2024年1月28日当天这1亿个用户中有多少用户登录,我们可以用一个长度为1亿的bitmap,然后bitmap中每个bit对应一个用户当天的登录情况,登录了则置为1,否则该bit就是0,那么我们只要用一个bitcount命令就可以得到当天这1亿个用户的登录情况了。上面说到布隆过滤器是基于bitmap实现的,这个bitmap其实就是基于redis的string类型的,因为string会保存二进制字节数组,所以自然可以用它来实现bitmap的功能。原创 2024-03-24 11:32:04 · 715 阅读 · 0 评论 -
【Redis知识点总结】(六)——主从同步、哨兵模式、集群
哨兵节点自动组成集群,是通过主节点完成的,它们在主节点的“__sentinel__:hello”频道执行pub和sub命令,也就是进行发布订阅,pub命令把自己的ip地址和端口号发布到主节点的“__sentinel__:hello”频道上,sub命令订阅主节点的“__sentinel__:hello”频道,当其他哨兵节点把自己的ip地址和端口号发布到主节点的该频道,当前哨兵节点就可以订阅到其他节点的ip地址和端口号。主节点和从节点都可以接收读命令,从节点可以分担主节点的读请求压力,这样就实现了读写分离。原创 2024-03-24 11:30:20 · 944 阅读 · 0 评论 -
【Redis知识点总结】(五)——Redis实现分布式锁
在Redis的众多应用场景中,分布式锁是Redis比较重要的一个应用场景,今天我们就来了解一下如何用Redis实现一个分布式锁。原创 2024-03-17 21:43:41 · 1289 阅读 · 0 评论 -
【Redis知识点总结】(四)——如何保证缓存与数据库中的数据一致性
最后总结一下比较靠谱的几种做法。如果是强一致性的场景,是不适合使用缓存的,那么最好就不要使用缓存了。如果遇到了即要求强一致性,又追求高性能的场景,那就太变态了。如果是对一致性要求较高,但又不是强一致性,那可以使用canal同步的方案,正常情况下canal读取binlog同步数据到redis这个过程,处理是非常快的。如果对一致性要求不高,可以采用先更新数据库,后删除缓存的机制,并且在查询数据库加载数据到缓存时,给缓存设置一个过期时间。原创 2024-03-17 21:41:53 · 1238 阅读 · 0 评论 -
【Redis知识点总结】(三)——Redis持久化机制、内存淘汰策略、惰性删除机制
bgsave则会fork一个子进程进行RDB持久化,在进行持久化的时候,如果主线程发生读写操作修改内存中的数据,会使用COW(copy-on-write)技术,在内存中的数据块被修改前,把将被修改的数据块copy一份副本,让子进程读取副本进行持久化,保证子进程写到RDB文件中的快照数据的一致性。然后子线程会读取内存中的副本数据,生成新的AOF文件。在启用混合持久化时,Redis重启首先会读取AOF文件中的RDB内存快照,恢复到内存中,然后在读取后面的AOF日志,执行AOF日志记录的命令,应用到内存中。原创 2024-03-09 13:49:31 · 501 阅读 · 0 评论 -
【Redis知识点总结】(二)——Redis高性能IO模型剖析
整个Redis事件驱动框架的主体逻辑就是一个主线程的死循环,在循环中,当前线程调用epoll_wait进行监听,获取有事件就绪的socket,然后放入一个队列,所有socket都放入队列后,会遍历队列中的socket进行事件分派。如果是建立连接事件,则调用socket的accept()函数建立连接获取另一个socket,把该socket注册到epoll实例中,如果是有数据达到,则调用socket的read()函数读取数据,如果是有数据需要写出,则调用socket的write()函数。原创 2024-03-09 13:48:27 · 1233 阅读 · 0 评论 -
【Redis知识点总结】(一)——各种数据结构及其应用场景
Redis的基础数据类型包括String(字符串)、List(链表)、Hash(哈希)、Set(集合)、Sorted Set(有序集合)五种。原创 2024-03-02 13:33:09 · 953 阅读 · 0 评论