TRYAGAIN Multiple keys request during rehashing of slot: Multiple keys request during rehashing of slot (cluster)
RedisNe demek?
Redis Cluster'da, bir hash slot'u düğümler arasında taşınırken (rehashing/resharding) aynı slot'a ait birden çok anahtarı içeren bir istek yapıldı ve anahtarların bir kısmı henüz taşınmış, bir kısmı taşınmamış durumda. Sunucu, işlemi biraz sonra tekrar denemenizi ister.
Neden olur?
Slot geçişi (migration) sürerken çok anahtarlı bir komut (MGET, MSET, çoklu anahtarlı Lua, transaction) çalıştırmak. Taşınan slot'ta bazı anahtarlar kaynak düğümde, bazıları hedef düğümde olduğundan komut atomik olarak yürütülemez.
Nasıl çözülür?
İstemcide bu hatayı yakalayıp kısa bir bekleme ile yeniden deneyin (TRYAGAIN geçici bir durumdur; resharding bitince düzelir). Çok anahtarlı işlemlerde tüm anahtarların aynı slot'ta olmasını hash tag ile garantileyin: {kullanici123}.profil, {kullanici123}.ayarlar gibi. Cluster resharding işlemlerini düşük trafik anında yapın.
Aynı motorda diğer kayıtlar
- ERR MULTI calls can not be nestedMULTI calls can not be nested
- ERR Lua script attempted to access nonexistent global variableLua script attempted to access a nonexistent global variable
- ERR unknown commandUnknown command
- ERR DISCARD without MULTIDISCARD without MULTI
- BUSYGROUP Consumer Group name already existsConsumer group already exists
- NOGROUP No such key or consumer groupNo such key or consumer group in stream
- NOTBUSY No scripts in execution right nowNo scripts in execution right now