/ / Pobieranie przedmiotów i liczenie za pomocą ServiceStack.Redis IRedisTypedClient - servicestack.redis

Pobieranie przedmiotów i liczenie za pomocą ServiceStack.Redis IRedisTypedClient - servicestack.redis

Właśnie zaczynam pracę z ServiceStack.Redis. Mogę umieścić poszczególne klucze / wartości w pamięci podręcznej i pobrać je z pamięci podręcznej. Nie mogę jednak uzyskać wszystkich elementów ani liczby elementów w pamięci podręcznej.

Oto kod

using (RedisClient cacheClient = new RedisClient(cacheServer))
{
IRedisTypedClient<CustomerEntity> customerCache = cacheClient.As<CustomerEntity>();
customer = bl.FetchCustomer(customerId);
//cache for two minutes
customerCache.SetEntry(customerId, customer, new TimeSpan(0, 2, 0));

//These all show the count as 0
logger.Debug(customerCache.GetAll().Count);
logger.Debug(cacheClient.GetAll<CustomerEntity>().Count);

var customers = customerCache.GetAll();
logger.Debug("{0} customers in the cache", customers.Count);
}

Odpowiedzi:

0 dla odpowiedzi № 1

W Twojej klasie CustomerEntity: (na przykład)

public string strManufacturer;

należy zastąpić jako

public string strManufacturer { get; set; }

Domyślam się, że redis nie może uzyskać dostępu, gdy getter i seter nie są jawnie zdefiniowane.

Nie mogłem zapisać moich obiektów C # na czerwono, ta modyfikacja naprawiła problem. Otrzymywałem wynik

"{}"

w redis-cli, gdy "otrzymam" klucz przed wykonaniemta modyfikacja i GetAll (). Count zwrócił 0 w twojej sytuacji. Powinieneś także zwrócić uwagę na warunki licencji ServiceStack.Redis, jeśli zamierzasz używać jej w środowisku produkcyjnym. tutaj do dyskusji na temat SO.