"timeitems", yani start - ("t_start") ve bitiş zamanı ("t_end") olan nesneleri önbelleğe almak istediğim bir projede Redis kullanıyorum.Sınırsız çok boyutlu dizin Redis kullanarak
Ben hiçbir şekilde zaman penceresi çakışıyor tüm timeitems bulmak da bir, başlatma ("w_start") ve endTime ("w_end) sahip bir zaman penceresi. İstediğim kullanarak önbellek sorgulamak istiyorum.
zaten başarıyla bu puanı = t_start + (t_end kullanarak (puanlarıyla belirlenen dizilmistir kullanarak uygulamıştır - t_start) ama bu sadece timeitem merkez süresi penceresi içinde nerede bana vurur verir
örtüşme. kodda sorgulama basittir:
bool overlap = t_start < w_end && w_start < t_end
Şimdi, çok boyutlu indeksler hakkındaki belgeleri okudum: http://redis.io/topics/indexes#multi-dimensional-indexes
Ama bugün daha iyi bir bölüm için kafamı çarptıktan sonra bu senaryoda işe yaramayacağını düşünüyorum çünkü sorun sınırsız (?). Yani, zaman penceresinden önce başlayan ve biten bir zaman öğesinden bir çakışma algılaması gerekir.
Herkes benzer bir doğrusallaştırma sorunu üzerinde çalıştıysa, bunu duymak isterim.
Cevabınız için teşekkür ederiz. Evet, bunlar gerçekten aralıklardır, ancak sıralanmış kümedeki az çok TÜM zaman çizelgelerinin (Redis dışında filtrelenecek şekilde) alınacağını hissediyorum. Özellikle ikinci yöntem kullanılarak (iki sıralı set). Soru, "redimensioning" ve kesişimin redis.io üzerinde açıklanan tekniği kullanarak redis sunucusunun içinde yapılabilmesi mi? –
Evet - Lua komut dosyalarını kullanın. Redimension için limamı kullanabilirsiniz: https://www.reddit.com/r/redis/comments/3s0h73/luaredimension_redis_multidimensional_query/ –
Tamam, kesinlikle Lua'yı denemek için zaman bulmaya çalışacağım. Bir matematiksel bakış açısından (ve StackExchange.Redis'i kullanarak uygulamaya başladıktan sonra) şüphelerim var, çünkü örnekler çok boyutlu bir noktanın belirli bir aralıkta (aynı boyutta) bulunup bulunmadığını bulmaya çalışırken, bu senaryo bir dizi kavrayışın bulunup bulunmadığının anlaşılmasıyla ilgilidir. başka bir aralıkla. Sana geri dönmeme izin ver .. –