BitFaster.Caching 2.5.4
⚡ BitFaster.Caching
High performance, thread-safe in-memory caching primitives for .NET.
ConcurrentLru
ConcurrentLru is a light weight drop in replacement for ConcurrentDictionary, but with bounded size enforced by the TU-Q eviction policy (based on 2Q). There are no background threads, no global locks, concurrent throughput is high, lookups are fast and hit rate outperforms a pure LRU in all tested scenarios.
Choose a capacity and use just like ConcurrentDictionary, but with bounded size:
int capacity = 128;
var lru = new ConcurrentLru<string, SomeItem>(capacity);
var value = lru.GetOrAdd("key", (key) => new SomeItem(key));
Optionally configure ConcurrentLru with a time-based eviction policy, either:
- Expire after write
- Expire after access
- Calculate an expiry time per item
ConcurrentLfu
ConcurrentLfu is a drop in replacement for ConcurrentDictionary, but with bounded size enforced by the W-TinyLFU admission policy. ConcurrentLfu has near optimal hit rate and high scalability. Reads and writes are buffered then replayed asynchronously to mitigate lock contention.
Choose a capacity and use just like ConcurrentDictionary, but with bounded size:
int capacity = 128;
var lfu = new ConcurrentLfu<string, SomeItem>(capacity);
var value = lfu.GetOrAdd("key", (key) => new SomeItem(key));
Optionally configure ConcurrentLfu with a time-based eviction policy, either:
- Expire after write
- Expire after access
- Calculate an expiry time per item
Documentation
Please refer to the wiki for API documentation, and an analysis of hit rate, latency and throughput.
Showing the top 20 packages that depend on BitFaster.Caching.
| Packages | Downloads |
|---|---|
|
Jellyfin.Controller
Package Description
|
6 |
|
OPCFoundation.NetStandard.Opc.Ua.Client
OPC UA Client Class Library
|
6 |
|
OPCFoundation.NetStandard.Opc.Ua.Client
OPC UA Client Class Library
|
4 |
|
Jellyfin.Controller
Package Description
|
4 |
|
Jellyfin.Controller
Package Description
|
3 |
|
Jellyfin.Controller
Package Description
|
2 |
|
Jellyfin.Controller
Package Description
|
1 |
|
OPCFoundation.NetStandard.Opc.Ua.Client
OPC UA Client Class Library
|
1 |
.NET Core 3.1
- No dependencies.
.NET 6.0
- No dependencies.
.NET Standard 2.0
- System.Threading.Tasks.Extensions (>= 4.5.4)
| Version | Downloads | Last updated |
|---|---|---|
| 2.5.4 | 6 | 2025/9/22 |
| 2.5.3 | 2 | 2025/6/13 |
| 2.5.2 | 2 | 2025/6/15 |
| 2.5.1 | 2 | 2025/6/15 |
| 2.5.0 | 2 | 2025/6/15 |
| 2.4.1 | 2 | 2025/6/15 |
| 2.4.0 | 2 | 2025/6/15 |
| 2.3.3 | 2 | 2025/6/15 |
| 2.3.2 | 2 | 2025/6/15 |
| 2.3.1 | 2 | 2025/6/15 |
| 2.3.0 | 2 | 2025/6/15 |
| 2.2.1 | 2 | 2025/6/15 |
| 2.2.0 | 2 | 2025/6/15 |
| 2.1.3 | 2 | 2025/6/15 |
| 2.1.2 | 2 | 2025/6/15 |
| 2.1.1 | 2 | 2025/6/15 |
| 2.1.0 | 2 | 2025/6/15 |
| 2.0.0 | 6 | 2025/6/15 |
| 1.1.0 | 5 | 2025/6/15 |
| 1.0.7 | 5 | 2025/6/15 |
| 1.0.6 | 7 | 2025/6/15 |
| 1.0.5 | 5 | 2025/6/15 |
| 1.0.4 | 5 | 2025/6/15 |
| 1.0.3 | 6 | 2025/6/15 |
| 1.0.2 | 6 | 2025/6/15 |
| 1.0.1 | 5 | 2025/6/15 |
| 1.0.0 | 5 | 2025/6/15 |
| 0.9.4 | 6 | 2025/6/15 |
| 0.9.3 | 5 | 2025/6/15 |
| 0.9.2 | 5 | 2025/6/15 |
| 0.9.1 | 5 | 2025/6/15 |