作者简介:陈鹏 背景知乎作为知名中文知识内容平台,每日处理的访问量巨大,如何更好的承载这样巨大的访问量,同时提供稳定低时延的服务保证,是知乎技术平台同学需要面对的一大挑战。知乎存储平台团队基于开源Redis 组件打造的 Redis 平台管理系统,经过不断的研发迭代,目前已经形成了一整套完整自动化运维服务体系,提供一键部署集群,一键自动扩缩容, Redis 超细粒度监控,旁路流量分析等辅助            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-20 22:07:14
                            
                                68阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            # Redis MSET 会阻塞吗?
## 1. 简介
在开始讨论 Redis MSET 的阻塞问题之前,我们先来了解一下 Redis 和 MSET 的基本概念。
### 1.1 Redis
Redis(Remote Dictionary Server)是一个开源的、基于内存的数据结构存储系统,它可以用作数据库、缓存和消息中间件。Redis 支持多种数据结构,如字符串、哈希表、列表、集合等            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-01-11 12:35:08
                            
                                62阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            今天有个问题,既然redis是单线程的,那么像BLPOP这种的阻塞命令不会一直占用着线程,其他命令无法执行吗?然而事实上是可以执行的。这个文章通过redis的源码讲的很清楚了。我总结补充一下人家的东西。https://www.jianshu.com/p/xsMzfnBLPOP key1 [key2 ] timeout 移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-19 13:09:14
                            
                                25阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            # Redis阻塞队列是否会阻塞线程
## 引言
在开发过程中,我们经常会遇到需要处理异步任务的场景。为了有效地处理这些任务,我们可以利用Redis的阻塞队列实现任务的异步处理。但是,很多新手开发者可能会对Redis的阻塞队列是否会阻塞线程感到困惑。本文将详细介绍Redis阻塞队列的实现原理以及对线程的影响。
## Redis阻塞队列实现流程
为了更好地理解Redis阻塞队列,我们先来了解            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-11-20 09:06:19
                            
                                108阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # Redis订阅是否会阻塞
## 简介
在使用Redis进行订阅/发布(pub/sub)功能时,可能会遇到一个问题:订阅操作是否会阻塞其他操作?本文将详细介绍Redis订阅的流程以及订阅是否会阻塞其他操作。
## 流程图
```mermaid
flowchart TD
    sub[订阅者]
    pub[发布者]
    sub-->|订阅频道| pub
```
## 步骤
下面是R            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-09-25 16:43:33
                            
                                287阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # Redis RPOP 阻塞特性详解
Redis 是一个非常高效的键值数据库,广泛用于缓存和消息队列等场景。很多初学者在使用 Redis 进行队列操作时,可能会遇到一个问题:“Redis 的 RPOP 命令会不会阻塞?”,本文将详细解答这个问题,并提供一个完整的实现步骤。
## 整体流程
在我们深入探讨 RPOP 的特性之前,我们首先要明确一下整体的处理流程。下面是一个简单的工作流程:            
                
         
            
            
            
            一.设计模式-发布订阅模式发布订阅模式,又叫观察者模式,属于四人帮的二十三个设计模式中的行为模式。”定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于他的对象都会得到通知并被自动更新“,模式UML如下图。通俗一点可以理解为,Subject中保存了Observer的引用组成的列表。Subject状态变化时,遍历列表调用所有Observer的notify成员方法。发布订阅模式应用场            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-15 10:28:28
                            
                                37阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            避免使用 Redis bigkey经验redis摘要:Redis bigkey 即数据量大的 Key,比如字符串Value值非常大,哈希、列表、集合、有序集合元素多等。由于其数据大小远大于其他Key,容易造成内存不均、超时阻塞、网络流量拥塞等一系列问题。Redis Bigkey 的危害内存不均导致集群内不同节点内存分布不均,间接导致访问请求倾斜,同时不利于集群统一管理,存在丢失数据的隐患。超时阻塞            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-30 10:16:18
                            
                                227阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            你是否也困在redis,知其然不知其所以然~~ 项目中,到底怎么用?? 一个简单的实例,使用消息队列实现下yii异步发送邮件redis~~准备工作:首先得配置redis服务yii的redis操作库:https://github.com/yiisoft/yi...使用composer安装redis的依赖库php composer.phar require --prefer-dist yiisoft/            
                
         
            
            
            
            文章目录简介数据结构Redis对象通用对象字符串string常用操作数据结构存储方式为什么是44字节扩容列表list常用操作快速列表quicklist数据结构存储方式特点整数集合intset字典常用操作使用场景数据结构扩容关于扩容的问题高位进位法扩容字典遍历hash攻击集合set常用操作跳表skiplist常用操作使用场景数据结构跳表的构建特点压缩列表ziplist数据结构级联更新问题紧凑列表li            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-03 05:50:44
                            
                                11阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            危害内存空间不均匀(平衡):如 Redis Cluster 中,bigkey 会造成节点的内存空间分布不均匀超时阻塞:由于 Redis 单线程的特性,操作 bigkey 会较耗时,意味着阻塞 Redis 可能性较大。网络阻塞:获取 bigkey 的网络传输较大,不仅影响客户端,而且影响其他节点;如:bigkey 为 1MB,每秒 1000次,每秒产生的流量 1000MB/s如何发现
redis-c            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-22 12:59:13
                            
                                68阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # 如何实现“redis dbsize命令会阻塞吗”
## 1. 介绍
在redis中,dbsize命令用于获取当前数据库中键值对的数量。有时候我们会担心执行dbsize命令会不会阻塞其他操作。在本文中,我将教给你如何验证这一点。
## 2. 流程图
```mermaid
flowchart TD;
    A[开始]-->B(连接Redis);
    B-->C(执行其他操作);            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-03-24 05:23:51
                            
                                135阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Redis缓存数据结构,数据同步问题(双删策略),缓存雪崩,缓存穿透,热点缓存重构,缓存失效,哨兵机制,持久化,redis 淘汰机制熟悉掌握Redis数据结构的使用场景,熟悉Redis缓存高并发的使用场景。比如,缓存雪崩,缓存穿透。五种数据结构:字符串string应用场景:一,单值缓存:set key valueget key二,对象缓存:set user:1 value(json数据)说明:一次            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-09-08 06:49:00
                            
                                26阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            ## Redis Keys命令是否会阻塞?
作为一名经验丰富的开发者,我很乐意教会新手如何实现“Redis Keys命令是否会阻塞”。首先,我们需要了解整个流程,并逐步指导他们完成每一步。下面是一个表格展示了实现过程的步骤:
| 步骤 | 说明 |
| --- | --- |
| 1 | 连接到Redis服务器 |
| 2 | 使用`keys`命令获取所有符合给定模式的键 |
| 3 | 对获            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-11-29 08:46:15
                            
                                63阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1、redis功能:数据库、缓存、消息队列2、常用类型与命令:String类型:key 是否存在:exists key key 移动到指定库:move key 1 key 移除:del key 设置过期时间(s):expire name 10 剩余过期时间(s):ttl key 查看key的类型:type key 追加字符串,key不存在set:append key str 自增:incr key            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-19 21:35:13
                            
                                75阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            数据结构1、String 
    1.1 数据结构
        long len       byte数组长度
        long free      可用数组长度
        char buff[] 数据内容
    1.2 命令
        键值:设置值通过字符串名
        set:设置键值 
        setnx(set not exist):设置键值|若键            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-13 15:37:53
                            
                                556阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            问题背景某个业务线使用Redis集群保存用户session数据,数据量大约在4千万-5千万,每天发生3-4次AOF重写,每次时间持续30-40秒,AOF重写期间出现Redis主进程阻塞,应用端响应超时的问题。环境:Redis 2.8,一主一从。什么是AOF重写AOF重写是AOF持久化的一个机制,用来压缩AOF文件,通过fork一个子进程,重新写一个新的AOF文件,该次重写不是读取旧的AOF文件进            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-31 13:20:36
                            
                                103阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一、Redis 发布订阅Redis 发布订阅是一种消息通信模式包含三个主体:发布者(PUB)、订阅者(SUB)、频道(channel)三者之间的关系简单举例: 我(订阅者) 在 CSDN  关注(订阅) 了 CSDN官方博客账号(频道),当 CSDN官方博客(发布者) 发送推文时,我(订阅者) 就可以收到 CSDN官方博客账号 的消息提醒。Redis 客户端可订阅任意数量的频道。消息无法持久化,出            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-01 12:41:44
                            
                                75阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Redis 的复制功能分为同步(sync)和命令传播(command propagate)两个操作:同步操作用于将从服务器的数据库状态更新至主服务器当前所处的数据库状态。命令传播操作用于在主服务器的数据库状态被修改, 导致主从服务器的数据库状态出现不一致时, 让主从服务器的数据库重新回到一致状态。同步当客户端向从服务器发送 SLAVEOF 命令, 要求从服务器复制主服务器时,            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-11 20:22:07
                            
                                81阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            目录风险日志写回策略与选择重写机制先写内存,在写日志。
1、命令执行成功才会被记录日志。
2、避免对当前命令的阻塞。风险1、突然宕机,Redis用作数据库的话,命令可能没有记入日志,所以就无法用日志进行恢复了。
2、AOF写磁盘,当磁盘压力大,会导致写盘慢,阻塞后续操作。
3、子进程要拷贝父进程的页表,这个过程的耗时和 Redis 实例的内存大小有关。如果 Redis 实例内存大,页表就会大,fo            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-02 12:32:31
                            
                                91阅读
                            
                                                                             
                 
                
                                
                    