public static void Main() { var config = new RedisConfigModel { Host = "127.0.0.1", Port = "6379" }; var redisManager = new RedisManager(config); ConsoleKeyInfo inputKey; do { Console.WriteLine("请选择一个演示:"); Console.WriteLine("1.阻塞锁"); Console.WriteLine("2.非阻塞锁"); inputKey = Console.ReadKey(); Console.WriteLine(); } while (inputKey.Key != ConsoleKey.D1 && inputKey.Key != ConsoleKey.D2); Parallel.For(0, 10, async index => { switch (inputKey.Key) { case ConsoleKey.D1: await ShowBlockingLockAsync(redisManager, index); break; case ConsoleKey.D2: await ShowNonBlockingLockAsync(redisManager, index); break; } }); Console.ReadKey(); }
public Consumer( IOptions <RedisConfigModel> redisConfig, IOptions <RabbitMqConfigModel> rabbitMqConfig, IRedisService redisService) { _redisConfig = redisConfig?.Value ?? throw new ArgumentNullException(nameof(redisConfig)); _rabbitMqConfig = rabbitMqConfig?.Value ?? throw new ArgumentNullException(nameof(rabbitMqConfig)); _redisService = redisService; }
public static void AddRedisCache(this IServiceCollection services, Action <RedisConfigModel> setupAction) { RedisConfigModel config = (RedisConfigModel)setupAction.Target; services.AddSingleton <IDistributedCache>(factory => { var cache = new RedisCache(new RedisCacheOptions { Configuration = config.ConnectionString, InstanceName = config.InstanceName }); return(cache); }); }