![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Redis学习
文章平均质量分 95
Redis知识点
BineHello
记录学习
展开
-
007-Redis的发布、订阅
原理 Redis是使用C实现的,通过分析 Redis 源码里的 pubsub.c 文件,了解发布和订阅机制的底层实现,籍此加深对 Redis 的理解。 Redis 通过 PUBLISH 、SUBSCRIBE 和 PSUBSCRIBE 等命令实现发布和订阅功能。 通过 SUBSCRIBE 命令订阅某频道后,redis-server 里维护了一个字典,字典的键就是一个个 频道!而字典的值则是一个链表,链表中保存了所有订阅这个 channel 的客户端。SUBSCRIBE 命令的关键, 就是将客户端添加到给定转载 2022-04-19 13:57:49 · 309 阅读 · 0 评论 -
006-Redis-非阻塞IO
文章目录**Redis单进程单线程**Redis的非阻塞IOI/O多路复用程序的实现 Redis单进程单线程 Redis是单进程单线程的,Redis利用队列技术将并发访问变为串行访问,消除了传统数据库串行控制的开销。多线程处理会涉及到锁。 多线程处理会涉及到线程切换而消耗CPU。减少上下文切换时间,因为CPU不是Redis的瓶颈,Redis的瓶颈最有可能是机器内存或者网络带宽。单线程无法发挥多核CPU性能,不过可以通过在单机开多个Redis实例来解决。 单线程的redis为什么这么快? (一)纯内存操作转载 2022-04-11 19:13:00 · 1236 阅读 · 0 评论 -
005-Redis-持久化
文章目录Redis持久化一、RDB二、AOF三、AOF 重写四、RDB 与 AOF 的对比**Redis单进程单线程**Redis的非阻塞IOI/O多路复用程序的实现缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级一、缓存雪崩二、缓存穿透三、缓存预热四、缓存更新五、缓存降级缓存穿透、击穿、雪崩缓存穿透缓存击穿缓存雪崩热点数据和冷数据是什么Memcache与Redis的区别有没有尝试进行多机redis 的部署?如何保证数据一致的?Redis 常见性能问题和解决方案为什么Redis的操作是原子性的,怎么保证原子转载 2022-04-11 16:00:45 · 202 阅读 · 0 评论 -
002-Redis的pipeline、跳表
文章目录1. 项目中redis2. pineline相关3. Redis-Zset底层数据结构:跳跃表(跳表) 1. 项目中redis # 建立redis连接 redis_conn = get_redis_connection(alias='verify_codes') # 创建用户输入的手机号标志 sms_fmt = "sms_{}".format(tel).encode('utf8') # 从数据库里面拿出手机号,名字是一样的 real_sms = redis_conn.get(sms_fmt) #转载 2022-04-09 22:33:29 · 112 阅读 · 0 评论 -
001-Redis基础类型
Redis基础类型: String: String 类型是 Redis 中最常使用的类型,内部的实现是通过 SDS(Simple Dynamic String )来存储的。SDS 类似于 Java 中的 ArrayList,可以通过预分配冗余空间的方式来减少内存的频繁分配。这是最简单的类型,就是普通的 set 和 get,做简单的 KV 缓存。(即以空字符’\0’结尾的字符数组),它是自己构建了一种名为 简单动态字符串(simple dynamic string,SDS)的抽象类型,并将 SDS 作为 Re转载 2022-04-06 11:34:17 · 131 阅读 · 0 评论 -
003-Redis-Redis的底层数据结构、过期策略以及内存淘汰机制、Redis分布式锁
文章目录1.缓存类型2.Redis的底层数据结构(6种)2.1 简单动态字符串2.2 链表2.3 字典2.4 跳跃表2.5 整数集合2.6 压缩列表2.7 总结3 Redis的过期策略以及内存淘汰机制3.1 Redis的过期策略3.2 Redis的内存淘汰4.Redis分布式锁 1.缓存类型 缓存是高并发场景下提高热点数据访问性能的一个有效手段,在开发项目时会经常使用到。 1.1本地缓存: 本地缓存就是在进程的内存中进行缓存,比如我们的 JVM 堆中,可以用 LRUMap 来实现,也可以使用 Ehcache转载 2022-04-09 21:11:34 · 248 阅读 · 0 评论 -
004-Redis-缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级
一、缓存雪崩 我们可以简单的理解为:由于原有缓存失效,新缓存未到期间 (例如:我们设置缓存时采用了相同的过期时间,在同一时刻出现大面积的缓存过期),所有原本应该访问缓存的请求都去查询数据库了,而对数据库CPU和内存造成巨大压力,严重的会造成数据库宕机。从而形成一系列连锁反应,造成整个系统崩溃。 解决办法: 大多数系统设计者考虑用加锁( 最多的解决方案)或者队列的方式保证来保证不会有大量的线程对数据库一次性进行读写,从而避免失效时大量的并发请求落到底层存储系统上。还有一个简单方案就时讲缓存失效时间分散开。转载 2022-04-06 13:41:45 · 247 阅读 · 0 评论