使用 Azure Redis 缓存配置 Gitlab 时出错

Posted

技术标签:

【中文标题】使用 Azure Redis 缓存配置 Gitlab 时出错【英文标题】:Getting error while configuring Gitlab with Azure Redis Cache 【发布时间】:2021-06-06 03:33:30 【问题描述】:

我正在尝试使用 Gitlab 版本 13.8.1 配置 Azure redis 缓存高级版(已启用集群模式)。 我遇到了错误,他可能会在这里发出什么问题:

**Redis::CommandError (CROSSSLOT Keys in request don't hash to the same slot):**

lib/gitlab/instrumentation/redis_interceptor.rb:15:in `call'
app/models/active_session.rb:111:in `block in destroy_sessions'
lib/gitlab/instrumentation/redis_cluster_validator.rb:74:in `allow_cross_slot_commands'
app/models/active_session.rb:110:in `destroy_sessions'
app/models/active_session.rb:101:in `block in destroy_with_rack_session_id'
lib/gitlab/redis/wrapper.rb:18:in `block in with'
lib/gitlab/redis/wrapper.rb:18:in `with'
app/models/active_session.rb:100:in `destroy_with_rack_session_id'
config/initializers/warden.rb:44:in `block (2 levels) in <top (required)>'
app/controllers/sessions_controller.rb:86:in `destroy'
app/controllers/application_controller.rb:482:in `set_current_admin'
lib/gitlab/session.rb:11:in `with_session'
app/controllers/application_controller.rb:473:in `set_session_storage'
lib/gitlab/i18n.rb:73:in `with_locale'
lib/gitlab/i18n.rb:79:in `with_user_locale'
app/controllers/application_controller.rb:467:in `set_locale'
lib/gitlab/error_tracking.rb:52:in `with_context'
app/controllers/application_controller.rb:532:in `sentry_context'
app/controllers/application_controller.rb:460:in `block in set_current_context'
lib/gitlab/application_context.rb:56:in `block in use'

【问题讨论】:

This article should be useful to you,如果您有任何进展,请告诉我。 【参考方案1】:

Gitlab 不支持启用集群的 Redis,如果您使用的是 Azure Redis cahce premium,那么您可以将 shard count 保持为 0 ,那么它应该可以工作。

【讨论】:

以上是关于使用 Azure Redis 缓存配置 Gitlab 时出错的主要内容,如果未能解决你的问题,请参考以下文章

Azure Redis 缓存使用注意事项与排查问题文档整理

Azure Redis缓存开发

Azure Redis 缓存简单设置/获取

Azure Redis缓存授权标头

Azure在内存(IMemoryCache)或Redis(IDistributedCache)中使用的缓存模型

为啥与 Azure Redis 缓存的连接如此之高?