ERR bit offset is not an integer or out of range: Bit offset is not an integer or out of range
RedisNe demek?
SETBIT/GETBIT/BITCOUNT gibi bit işlemlerinde verilen bit ofseti geçersiz: tamsayı değil ya da izin verilen aralığın dışında. Redis, bu ofsette bir bit işlemi yapamaz.
Neden olur?
Ofset olarak sayısal olmayan bir değer geçmek; negatif ofset kullanmak; ya da izin verilen üst sınırı (bit dizisi 512 MB'a, yani yaklaşık 2^32 bit'e kadar) aşan çok büyük bir ofset vermek. Bit alanı (bitmap) tabanlı sayaç/işaretleme yapılarında hesaplama hatasıyla oluşur.
Nasıl çözülür?
Ofsetin negatif olmayan bir tamsayı ve izin verilen aralıkta (0 ile ~2^32-1 arası, dizeler en çok 512 MB) olduğundan emin olun. Ofset hesaplamalarını (ör. kullanıcı kimliğinden türetilenleri) taşma/negatiflik açısından doğrulayın. Çok büyük ofsetler gerekiyorsa veriyi birden fazla anahtara bölerek (sharding) tasarlayın.
Aynı motorda diğer kayıtlar
- ERR SELECT is not allowed in cluster modeSELECT is not allowed in cluster mode
- ERR wrong number of arguments for commandWrong number of arguments for command
- ERR Background save already in progressBackground save already in progress
- ERR Protocol error: invalid multibulk lengthProtocol error: invalid multibulk length
- ERR Number of keys can't be greater than number of argsEVAL/EVALSHA: numkeys exceeds argument count
- ERR WATCH inside MULTI is not allowedWATCH inside MULTI is not allowed
- ERR WAIT cannot be used with replica instancesWAIT cannot be used with replica instances