package sihl-cache

  1. Overview
  2. Docs
Cache service implementations for Sihl

Install

Dune Dependency

Authors

Maintainers

Sources

1.0.0-rc1.tar.gz
md5=3dd7fcf3b9f0cf99c1ce0ceed278aef6
sha512=aeb289a71186b7b0b429d3869bb4eab632eec5ab403353dc13d8a18c5b04af5fda7c2a74bacf98364a8e0b1b3e843fb5a0b28a0c38652bed2e9432ee6659b53a

doc/index.html

Sihl Cache

This module provides the cache service and helpers to store arbitrary values. Think of the cache service as a generic key-value store where you can choose a backend.

Currently MariaDb (Sihl_cache.MariaDb) and PostgreSql (Sihl_cache.PostgreSql) are supported.

Installation

Backend

First, choose a backend in service/service.ml:

module Cache = Sihl_cache.PostgreSql

Registration

Then, register the service in run/run.ml:

let services = [ Service.Cache.register () ]

Migrations

Run pending migrations with make sihl migrate.

Usage

The API is documented in Sihl.Contract.Cache.Sig.

  
  (* Associated user_id with a value *)
  let%lwt () = Service.Cache.set ("user_id", Some "56") in
  let%lwt user_id = Service.Cache.find "user_id" in
  let () =
    match user_id with
    | Some user_id -> print_endline @@ "Found user " ^ user_id
    | None -> print_endline "No user found"
  (* Delete user_id *)
  Service.Cache.set ("user_id", None)
OCaml

Innovation. Community. Security.