Очень раздражающий сбой с StackExchange.Redis
SetAdd(key, val)
.StackExchange.Redis SetAdd (ключ, val) сбой с ключом = GUID
Я хочу установить набор с помощью GUID программ в качестве ключа.
Я нашел (после 3-х часов отладки), что SetAdd(key, val)
работает с некоторыми GUID, но падает с другими:
string key = "02639d71-0935-35e8-9d1b-9dd1a2a34629";
const string val = "somevalue";
db.SetAdd(key, val); // <=== Works
key = "02639d71-0935-35e8-9d1b-9dd1a2a34627";
db.SetAdd(key, val); // <=== CRASH @@[email protected][email protected]!
Разница является последним символом "9" против "7"
Безразлично» t SetAdd
работать с локальным GUID как ключом?
Окружающая среда: C# .NET 4 Win 8,1 VS2013
Краш сообщение:
An unhandled exception of type 'StackExchange.Redis.RedisServerException' occurred in StackExchange.Redis.dll
Additional information: WRONGTYPE Operation against a key holding the wrong kind of value
Точка аварии в StackExchange.Redis
...
Я тестировал этот код в LINQPad. Он падает на том же месте. Первый GUID работает, второй - нет.
Это швы, что авария не из-за этого является начальным GUID приложения.
Больше теста с различными GUID. Только то, что заканчивается на «7», падает.
key = "02639d71-0935-35e8-9d1b-9dd1a2a34622";
key = "02639d71-0935-35e8-9d1b-9dd1a2a34623";
key = "02639d71-0935-35e8-9d1b-9dd1a2a34624";
key = "02639d71-0935-35e8-9d1b-9dd1a2a34625";
key = "02639d71-0935-35e8-9d1b-9dd1a2a34626";
key = "02639d71-0935-35e8-9d1b-9dd1a2a34627"; // <= crashes
key = "02639d71-0935-35e8-9d1b-9dd1a2a34628";
key = "02639d71-0935-35e8-9d1b-9dd1a2a34629";
...
KeyExists
, StringIncrement
, StringSet
хорошо работать с ключом = мой GUID.
OMG. Он сбой, потому что раньше я сохранил строку с этим ключом. Кто пишет эти сообщения об ошибках? Почему сообщение не «БД уже содержит другой элемент с этим ключом. Используйте другой ключ!» .. Большое спасибо. +1 –
@ Мирослав, который пишет эти сообщения об ошибках? эта ошибка является дословной с сервера, поэтому, вероятно, Salvatore Sanfilippo :) –
Я это знаю. :) Я программирую с 1986 года, но я был введен в заблуждение этим исключением (имея 3-дневный опыт работы с Redis). Я искал, что не так с типом ключа с точки зрения «StackExchange.Redis». Бедный мне :) –