Redis Lettuce 连接和 BLPOP

2024-01-20

Lettuce 在底层使用单个共享本机连接。 在这种设计中使用 BLPOP 阻止命令是否安全 - 它会阻止此共享本机连接并影响其他客户端吗?我在 Lettuce 文档中没有找到具体的解释说明。

提前致谢,


使用 BLPOP/BLMOVE 和类似命令会在响应期间或超时之前阻止连接。如果您使用同步 API,调用线程也会在此 IO 上被阻塞。同时,其他线程可以继续通过以下方式发出命令其他客户端连接而不受影响。

如果阻塞的连接与其他线程共享,来自此类其他线程的命令将在 BLPOP/BLMOVE 后面排队。副作用是,共享被阻止连接的所有其他线程将经历延迟,直到 Redis 响应第一个 BLPOP/BLMOVE 命令,之后连接会自动解除阻塞,并且所有排队的命令将按 FIFO 执行。这是一种经典的前线阻塞模式,如果您在共享连接上使用阻塞命令,则会发生这种情况。

在您的特定用例中,建议不要使用共享连接来发出阻止命令。相同的规则适用于事务和禁用批量命令的刷新。这是罕见的用例之一生菜连接不应共享 https://lettuce.io/core/release/reference/#asynchronous-api.impact-of-asynchronicity-to-the-synchronous-api.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Redis Lettuce 连接和 BLPOP 的相关文章

  • 有没有办法在 Redis 和关系数据库中使用带有 @RedisHash 的实体?

    我正在使用Spring引导 为了将我的实体保存在关系数据库上 我配置了一个数据源和我的域类 例如 Entity Table schema schema name name tb name public class table name ex
  • 使用 sidekiq 处理两个独立的 Redis 实例?

    下午好 我有两个独立但相关的应用程序 他们都应该有自己的后台队列 阅读 单独的 Sidekiq 和 Redis 进程 然而 我希望偶尔能够将工作推给app2的队列来自app1 从简单的队列 推送的角度来看 如果app1没有现有的 Sidek
  • 如何清理redis中不活跃的玩家?

    我正在制作一个使用 redis 来存储游戏状态的游戏 它可以很好地跟踪位置和玩家 但我没有一个好的方法来清理不活跃的玩家 每当玩家移动时 这是一个半慢速移动游戏 想想每秒 1 5 帧 我就会用新位置更新哈希并删除旧位置键 跟踪活跃玩家的最佳
  • Spring RedisTemplate:8次调用后方法键挂起

    我使用 Spring RedisTemplate spring data redis 1 7 1 与 Redis 进行通信 我需要通过正则表达式获取然后删除键 例如 context user1 我用的方法 RedisTemplate key
  • connect-redis - 如何保护会话对象免受竞争条件影响

    我使用 nodejs 和 connect redis 来存储会话数据 我将用户数据保存在会话中 并在会话生命周期中使用它 我注意到两个更改会话数据的请求之间可能存在竞争条件 我尝试过使用 redis lock 来锁定会话 但这对我来说有点问
  • 我的 Redis 自动生成的密钥

    我不知道我的 Redis 版本 4 0 9 到底发生了什么 我正在运行一个应用程序并使用 Redis 来存储我的数据库 但是 然后 Redis 自动创建 3 个新键 Backup1 Backup2 Backup3 并删除我的所有数据 这是我
  • 仅当尚未设置时才进行原子设置

    仅当尚未在 Redis 中设置时 是否有办法执行原子设置 具体来说 我正在创建一个像 myapp user user email 这样的用户 并且希望 Redis 在 user email 已被占用时返回错误 而不是默默地替换旧值 比如声明
  • redis集群不断打印日志WSA_IO_PENDING

    当我启动redis集群的所有redis服务器时 所有这些服务器不断打印类似WSA IO PENDING clusterWriteDone的日志 9956 03 Feb 18 17 25 044 WSA IO PENDING writing
  • WSL Redis 遇到系统尚未使用 systemd 作为 init 系统(PID 1)启动。无法操作[已关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试遵循本文中讨论的 Redis 安装过程article https www digitalocean com community
  • SignalR 无法连接到 SSL 上的 Azure Redis

    我目前在 Azure 上托管我的 redis 缓存服务器 并让 signalR 依赖它作为骨干 使用以下内容 GlobalHost DependencyResolver UseRedis 服务器 端口 密码 eventKey 这可以在端口
  • 无法启动redis.service:单元redis-server.service被屏蔽

    我在 ubuntu 16 04 上安装了 Redis 服务器 但是当我尝试使用启动redis服务时 sudo systemctl start redis 我收到消息 Failed to start redis service Unit re
  • 如何设置和获取Redis中存储的对象?

    我试图在 redis 中存储一个对象 当我获取该对象时 它似乎不起作用 I tried u User new u name blankman redis set test u x redis get test x name error 我想
  • Redis发布/订阅:查看当前订阅了哪些频道

    我目前有兴趣查看我拥有的 Redis 发布 订阅应用程序中订阅了哪些频道 当客户端连接到我们的服务器时 我们将它们注册到如下所示的通道 user user id 这样做的原因是我希望能够看到谁 在线 目前 我在不知道客户端是否在线的情况下盲
  • Java 将字节转换为二进制安全字符串

    我有一些以字节为单位的数据 我想将它们放入Redis中 但是Redis只接受二进制安全字符串 而我的数据有一些二进制非安全字节 那么如何将这些字节转换为二进制安全字符串以便将它们保存到 Redis 中呢 Base64 对我有用 但它使数据更
  • Redis、会话过期和反向查找

    我目前正在构建一个网络应用程序 并想使用 Redis 来存储会话 登录时 会话会使用相应的用户 ID 插入到 Redis 中 并且过期时间设置为 15 分钟 我现在想实现会话的反向查找 获取具有特定用户 ID 的会话 这里的问题是 由于我无
  • Laravel 所有会话 ID 与 Redis 驱动程序

    在我的应用程序中 我希望允许某些用户能够注销除他 她之外的所有其他用户 当会话驱动程序设置为文件时 我已经完成了此功能 但现在我使用 redis 作为会话驱动程序 并且我无法找到任何方法来列出所有当前会话 就像我在文件时所做的那样司机 问题
  • redis - 使用哈希

    我正在使用 redis 为我的 Web 应用程序实现社交流和通知系统 我是 redis 的新手 我对哈希值及其效率有一些疑问 我读过这篇很棒的文章Instagram 帖子 http instagram engineering tumblr
  • StackExchange.Redis的正确使用方法

    这个想法是使用更少的连接和更好的性能 连接会随时过期吗 对于另一个问题 redis GetDatabase 打开新连接 private static ConnectionMultiplexer redis private static ID
  • 如何使 Redis 缓存中数据层次结构(树)的部分内容无效

    我有一些产品数据 需要在 Redis 缓存中存储多个版本 数据由 JSON 序列化对象组成 获取普通 基本 数据的过程很昂贵 将其定制为不同版本的过程也很昂贵 因此我想缓存所有版本以尽可能进行优化 数据结构看起来像这样 BaseProduc
  • redis dump.rdb / 保存小文件

    Context 我正在使用redis 数据库小于 100 MB 但是 我想进行每日备份 我也在 Ubuntu Server 12 04 上运行 当输入 redis cli save 我不知道 dump rdb 保存到哪里 因为 redis

随机推荐

  • Laravel Sync 方法仅发送第二个数据

    这段代码应该从数据库中删除所有旧数据 并在添加新数据时 使用sync 现在我有一个包含用户的项目 并且可以使用复选框将用户链接到项目 因此 在选中复选框时 此功能将触发 但例如当我这么说时user 1 and user 2正在通过此功能添加
  • NSMutableArray 到 std::vector

    是否可以将 NSMutableArray 的内容转换为 std vector 如果是这样 应该在 Objective C 或 C 代码中完成吗 您可以使用任何 Objective C 类型创建向量 例如 要将 NSString 实例存储到向
  • 为什么在左连接中使用子查询会给出与等效表完全不同的答案?

    我在 Access 查询中使用左联接来获取添加了仅适用于几行的列的表 当我使用子查询作为要连接的表时 它会为我提供一个最终表 其中新列的所有行都具有相同的值 当我构建一个提供与子查询完全相同的输出的表时 它会按照我想要的方式工作 如果子查询
  • 如何全局或单点管理 axios 错误

    我的应用程序中遍布标准的 then catch axios 代码 一个简单的代码如下所示 axios get then r gt catch e gt 我遇到的问题是我必须复制catch 块来处理我在应用程序中调用的任何潜在错误 我的问题是
  • 使用 SQL 查询填充 nHibernate 映射文件中的属性

    我有一个对象 其中包含一个 SQL 语句结果的属性 如何将 SQL 语句添加到我的 nHibernate 映射文件中 示例对象 public class Library public int BookCount get set 示例映射文件
  • pygame 中 screen.blit(player, (xpos, ypos)) 和 display.flip() 有什么区别?

    两者似乎都会更新整个屏幕或仅更新屏幕的一部分 但哪一个做什么以及如何做 blit 不更新屏幕 它在缓冲区中绘制图像 update and flip 将缓冲区发送到视频卡 视频卡将其显示在监视器上 如果你有代码blit 但没有update o
  • Vue JS 中的图像路径[重复]

    这个问题在这里已经有答案了 我在 vue js 中有这样的结构文件 资产 图像 我的图像 png my image2 png 成分 用户 userStart vue 我将使用数组中的对象显示图像 这是我的代码 userStart vue i
  • 在 Mac OS X 10.6 上使用 Google App Engine SDK 和 Python 2.7

    我需要在安装了 Python 2 6 的 Mac Snow Leopard 上运行 Python 2 7 根据这个答案 https stackoverflow com questions 4460367 install python 2 7
  • 无法从 Mac 上的主机使用 NodePort 访问 minikube 服务

    我正在尝试将单个 Web 应用程序部署到 Mac 上的 Minikube 然后在浏览器中访问它 我正在尝试使用最简单的设置 但它不起作用 我只是收到 连接被拒绝 错误 但我不明白为什么 这就是我正在尝试的 minikube start in
  • Singleton 类出了问题,不知道是什么

    我以前从未做过任何单例类 现在我认为对于这个数据库连接来说 创建一个单例类是个好主意 但我不知道为什么它不起作用 如果有人能帮助我解决这个问题 我真的很感激 因为我想了解 OOP 是如何工作的 无论如何 我现在只需将 PHP 更新到最新版本
  • Spring data MongoDB 将数组添加到现有文档

    假设我有以下集合 public Data class Customer Id private String id private String firstName private String lastName DBRef private
  • 升级到 Crashlytics NDK 2.+ 后出现虚假 NDK 堆栈回溯

    从 Crashlytics 2 6 8 Crashlytics NDK 1 1 5 迁移到 Crashlytics 2 8 0 Crashlytics NDK 2 0 0 以及之后的任何更新版本后 寻找 NDK 堆栈跟踪中展开问题的结构支持
  • Firestore 管理员 创建匿名用户

    尝试使用管理员创建匿名用户 我使用云功能 但我不知道是否可能 admin auth createUser email userEmail emailVerified false password userPassword disabled
  • 如何在xcode中使用数组传递本地html文件

    我在这里尝试申请 当我单击表格视图时 它将重定向到另一个名为 详细信息 的页面 在那里我使用了 webview 来显示所选的 url 值 这是我的代码 void viewWillAppear BOOL animated super view
  • 选择内核和超参数以减少内核 PCA

    我正在阅读使用 Scikit Learn 和 TensorFlow 进行机器学习实践 构建智能系统的概念 工具和技术 https rads stackoverflow com amzn click com 1491962291 我正在尝试优
  • 使用 Java 下载文件

    我编写了一些代码来下载我所做的网络广播的一集 它获取剧集的 URL 并获取保存它的位置 不过 它最多只能下载 16MB 然后就会自动取消 我不完全确定要改变什么值来增加这个值 有可能吗 有人可以指出我正确的方向吗 谢谢你 下载代码 URL
  • Amazon SQS Java SDK - 无法接收消息属性

    在发送之前使用以下代码将带有属性的消息发布到 SQS 后 并在 SQS 控制台中检查所有内容是否正确发布 messageRequest addMessageAttributesEntry attributeTest new MessageA
  • Instabot:是否可以在单个帖子中上传多张图片?

    我正在使用此代码为 Instagram 创建一个简单的每日帖子机器人 一切都很顺利 但如果我能在每篇文章中发布包含 2 3 张图像的相册 那就太不可思议了 这可能吗 这是我到目前为止所做的 非常适合单图像帖子 import os impor
  • 尝试使用多处理来填充Python中的数组

    我有这样的代码 x 3 y 3 z 10 ar np zeros x y z from multiprocessing import Process Pool para process def local func section prin
  • Redis Lettuce 连接和 BLPOP

    Lettuce 在底层使用单个共享本机连接 在这种设计中使用 BLPOP 阻止命令是否安全 它会阻止此共享本机连接并影响其他客户端吗 我在 Lettuce 文档中没有找到具体的解释说明 提前致谢 使用 BLPOP BLMOVE 和类似命令会