Found 8 packages
Synchronization helper: a static lock collection associated with a key. NamedLock manages the lifetime of critical sections that can be accessed by a key (name) throughout the application. It also have some helper methods to allow a maximum wait time (timeout) to aquire the lock and safelly release it. Note: this nuget package contains c# source code and depends on System.Collections.Concurrent introduced in .Net 4.0.
Extention methods for redis, implemented redis lock and some other features. it's easy to use, for .net core implement injection "services.AddRedisStore(configuration, "redis"); where "redis" is section for get configuration
A C# lock replacement enabling async-await in between acquire and release. High performance, Re-entrant, with no caveat. Able to re-entrant/re-acquire the same across threads within the same task.
The blocking implementation of StackExchange.Redis LockTake and the automatic release of locks
Redis-based distributed lock with Acquire, Release, and Wait APIs + DI extension AddLockAndWaitService().
A task runner that uses IRedisLockUtil to release a set of distributed Redis locks, typically when the application starts
🚀 Production-ready distributed coordination library for .NET Standard 2.0+ ✅ Distributed Lock (Redis-based, safe acquire/release, auto-expiration) ✅ Idempotency Helper (retry-safe execution, webhook protection, API patterns) ✅ Saga Coordination (step-by-step orchestration, crash recovery, idempotent steps) ✅ Multiple Backend Support (Redis, InMemory, Composite, Custom stores) ✅ Cancellation Token Support (graceful shutdown handling) ✅ DI-First Design (seamless ASP.NET Core integration) ✅ Unit Testing Ready (InMemoryKeyValueStore for testing) Perfect for microservices, distributed systems, background jobs, webhooks, message queues, and payment processing. Key Features: • Production-ready Redis implementation with Lua scripts • Thread-safe in-memory store for testing • Complete IKeyValueStore interface with all essential operations • TTL-based auto-release prevents deadlocks • Lock ownership validation for safe release • Atomic compare-and-delete operations • Comprehensive examples and documentation .NET Standard 2.0 compatible → works with .NET Core 2.0+, .NET 5+, .NET 6+, .NET 7+, .NET 8+, .NET 9+
3.0.1 Dotnet 8.0 target framework added, older versions removed. BinaryFormatter serialization removed, Json is used as master serializer/deserializer. 2.9.0 Fix: Redis Sentinel support added correctly. Feat: Degraded health status added for sentinel mode only. 2.8.1 Multi get async support. 2.8.0 Keys can be fetched in both binary and json formatter serialized, but can only be set in json formatter serialized to transform binary formatter serialized keys which is unsupported. 2.7.1 Added try-catch expression to prevent data loss when converting binary formatter to json formatter. 2.7.0 Main release 2.6.2-preview Deleted try catch expression(unnecessary and don't preserve stack trace). Replaced Obsolete method with suggested method. 2.6.0-preview Enabling pub/sub is now optional, defaults to false HashRemove and HashCounter supports added 2.5.0-preview Multiple Sentinel and Redis Cluster support More accurate healthcheck for any kind of server installation (Cluster, Sentinel, Basic) StackExchange.Redis upgrade 2.4.0-preview More extension methods added (Get a key from redis, if null set it via method and return) 2.3.0-preview Numerous type of handy extension methods are added such as Hash, HashAsObject, Set Use HashAsObject to store a complete object into hash fields for boosted performance (Only supports Json serialization), and able to get selected fields rather than the entire object Use Set for relationships or etc. 2.1.3-preview Carbon.Redis JSON binary serializer added on the top of binary formatter serializer which is unsupported as of dotnet 5. Simply use static method ICarbonCacheExtensions.SetSerializationType as desired serialization type which defaults to binaryformatter. If you try to get binaryformatter serialized keys via json binary serializer from redis, you will receive default value (such as null). At that moment, remove the existing key, and add the new one with the new serializer, or use set to replace it. System.Text.Json (faster) is used as master serializer/deserializer replacing Newtonsoft.Json. This may require to add [Serializable] tag over your objects, make sure you consider it! 2.0.0-preview Enables you to use CarbonRedisCache Helper in your services to access more extended methods and capabilities (i.e. RedLock, Redis PubSub etc.) and make the legacy apis compatible with this package Handle with care while using this Helper extension methods as it contains binaryformatters which are obsoleted as of dotnet 5, either allow this feature in your csproj or do not use dotnet 5 and greater BinaryFormatters will migrate to JsonSerializers or other serializations at incoming versions 1.3.3 Added SSL/TLS connection support 1.2.0 Added health check. 1.0.9 - Redis Key Length Retrieval from Configuration, not from Redis as a Key 1.0.4 - Scan Keys And Remove By Pattern