Popularity
3.5
Stable
Activity
0.0
Stable
27
1
4

Monthly Downloads: 42
Programming language: Elixir
License: Do What The F*ck You Want To Public License
Tags: Caching     Persistence     TTL    
Latest version: v0.3.1

Mem alternatives and similar packages

Based on the "Caching" category.
Alternatively, view Mem alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of Mem or a related project?

Add another 'Caching' Package

README

Mem

KV cache with TTL, Replacement and Persistence support

Build Status Coveralls Hex.pm Version Hex.pm Downloads

Usage

  1. define your cache module

    defmodule Cache do
      use Mem,
        worker_number:      2,       # (optional, default: 2) how many processes in worker pool
        default_ttl:        300,     # (optional, default: nil) default expire seconds for set/2
    
        maxmemory_size:     "1000M", # (optional, default: nil) max memory used, support such format: [1000, "10k", "1GB", "1000 K"]
        maxmemory_strategy: :lru,    # ([:lru, :ttl, :fifo]) strategy for cleaning memory
        persistence:        false    # (optional, default: false) whether enable persistence
    
    end
    
  2. add this module to supervisor

    defmodule MyApp.Supervisor do
      use Supervisor
    
      def start_link do
        Supervisor.start_link(__MODULE__, [])
      end
    
      def init([]) do
        [ Cache.child_spec,
        ] |> supervise(strategy: :one_for_one)
      end
    
    end
    
  3. just use it like redis

    Cache.set(:a, 1)
    Cache.inc(:a, 2)
    Cache.set(:b, 2, 200)
    Cache.get(:a)
    Cache.expire(:a, 200)
    Cache.ttl(:a)
    Cache.del(:b)
    Cache.flush
    
    Cache.hset(:c, :a, 2)
    Cache.hget(:c, :a)
    
    Cache.memory_used()
    

Thanks