Skip to content

nitrogen/nitro_cache

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
November 14, 2020 17:49
src
March 30, 2022 14:25
November 14, 2020 20:50
November 14, 2020 18:37
March 5, 2013 19:31
November 15, 2020 10:10
March 30, 2022 14:25
November 15, 2020 10:10
November 14, 2020 21:10

NitroCache

NitroCache is a fork of simple_cache modified specifically for the needs of integration with the Nitrogen Web Framework.

The updated code now has a separate process to handle the expirations, which is a regular gen_server. To start it, just do:

nitro_cache_expirer:start_link()

Create a cache

nitro_cache:init(my_cache_name).

Getting a key

The following call will lookup my_key in the cache named my_cache_name, and on a MISS will call the given fun, caching its result for 3600000 milliseconds.

nitro_cache:get(my_cache_name, 3600000, my_key, fun() ->
    io:format("This fun will be called on a cache miss~n"),
    timer:sleep(5000)
    this_value_will_be_cached
end)

Flushing the cache

nitro_cache:flush(my_cache_name).

Flushing a key

nitro_cache:flush(my_cache_name, my_key).

Changes:

Version 0.4.1

  • Fixed a bug where the mutex wouldn't free if the provided function crashed.

Version 0.4.0

  • Renamed to NitroCache to avoid a name clash (simple_cache is already taken on hex.pm)
  • Requesting a key from a bucket if it has not yet been initialized will automatically instantiate that bucket.
  • NitroCache introduced a mutex system to prevent recalculating the same slow-calculating key when multiple requests come in at same time. When the key's value is calculated, it will return the result to all the waiting requests.
  • Added a cache_exists/1 function.
  • Added a set/4 function.
  • Converted to rebar3

Version =< 0.3

These earlier versions are the simple_cache versions.

About

Cache for Nitrogen Web Framework

Resources

License

Stars

Watchers

Forks

Packages

No packages published