BitFaster.Caching 2.5.3
⚡ 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
|
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.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 | 1 | 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 | 2 | 2025/6/15 |
1.1.0 | 2 | 2025/6/15 |
1.0.7 | 2 | 2025/6/15 |
1.0.6 | 2 | 2025/6/15 |
1.0.5 | 2 | 2025/6/15 |
1.0.4 | 2 | 2025/6/15 |
1.0.3 | 2 | 2025/6/15 |
1.0.2 | 2 | 2025/6/15 |
1.0.1 | 2 | 2025/6/15 |
1.0.0 | 2 | 2025/6/15 |
0.9.4 | 2 | 2025/6/15 |
0.9.3 | 2 | 2025/6/15 |
0.9.2 | 2 | 2025/6/15 |
0.9.1 | 2 | 2025/6/15 |