Sebenarnya ketika Anda menggunakan PersonClient.Lists["urn:names:current"]
Anda sebenarnya menyimpan referensi ke Koneksi RedisClient yang tidak aman untuk thread. Tidak apa-apa jika itu di aplikasi GUI atau Konsol, tetapi tidak ideal di aplikasi web multi-utas. Dalam sebagian besar skenario, Anda ingin menggunakan pabrik koneksi aman utas yaitu
var redisManager = new PooledRedisClientManager("localhost:6379");
Yang bertindak sangat mirip dengan kumpulan koneksi database. Jadi kapan pun Anda ingin mengakses RedisClient berfungsi seperti:
using (var redis = redisManager.GetClient())
{
var allItems = redis.As<Person>().Lists["urn:names:current"].GetAll();
}
Catatan:.As<T>
adalah alias yang lebih pendek untuk .GetTypedClient<T>
Jalan pintas lain yang nyaman untuk mengeksekusi klien yang diketik dari redisManager adalah:
var allItems = redisManager.ExecAs<Person>(r => r.Lists["urn:names:current"].GetAll());
Saya biasanya lebih suka menyebarkan IRedisClientsManager
dalam kode saya sehingga tidak memiliki koneksi RedisClient tetapi dapat mengaksesnya kapan pun diperlukan.