public int GetObjectIndex(object model) { RedisTopLevelEntity entity = model as RedisTopLevelEntity; if (entity == null) { throw new Exception(); } return(keys.IndexOf(entity)); }
public void UpdateCache(RedisTopLevelEntity entity) { String intKey = GetByteString(GetMd5(entity.Key)); CachedEntry entry = new CachedEntry() { KeyHash = GetMd5(entity.Key), Type = entity.Type, TTL = entity.ExpiresAt }; if (cachedEntities.ContainsKey(intKey)) { if (!cachedEntities[intKey].Equals(entry)) { // update entry if different entry.SlotIndex = cachedEntities[intKey].SlotIndex; // inherit slot index cachedEntities[intKey] = entry; // modify in cache cachedEntitiesDelts[intKey] = entry; // flag as modified } } else { // entry does not exist, add it entry.SlotIndex = GetNextEmptySlot(); cachedEntities[intKey] = entry; cachedEntitiesDelts[intKey] = entry; } }