kienstra / data-store

A Clojure-based in-memory data store. Similar to Redis®* but fewer features.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Data Store

A lightweight in-memory data store in Clojure.

Similar to Redis®* but fewer features.

Run server locally

  1. Install Leiningen if you haven't already
  2. Install the Redis CLI
  3. lein run
  4. Open another terminal tab
  5. redis-cli PING
  6. Expected: PONG
  7. Run any other Redis CLI command

Run unit tests

lein test

Package server for production

lein uberjar

Run server in production

java -jar target/uberjar/data-store-<version>-standalone.jar

Benchmark server

  1. Run server
  2. Open a new terminal tab
  3. redis-benchmark -t set,get, -n 1000000 -q
  4. Expected:
WARNING: Could not fetch server CONFIG
SET: 72270.00 requests per second, p50=0.343 msec
GET: 74833.49 requests per second, p50=0.351 msec
  1. Stop the server you ran in step 1 with Control-C.
  2. redis-server
  3. Repeat step 3
  4. Expected:
SET: 80729.80 requests per second, p50=0.303 msec
GET: 81512.88 requests per second, p50=0.319 msec
  1. That's how this server's performance compares to Redis®.

Bugs

Please open an issue on GitHub.

License

GPLv2 or later


* Redis is a registered trademark of Redis Ltd. Any rights therein are reserved to Redis Ltd. Any use by this repo is for referential purposes only and does not indicate any sponsorship, endorsement or affiliation between Redis and this repo.

About

A Clojure-based in-memory data store. Similar to Redis®* but fewer features.

License:GNU General Public License v2.0


Languages

Language:Clojure 100.0%