nuster can be used as a RESTful NoSQL cache server, using HTTP POST/GET/DELETE to set/get/delete Key/Value object.

It can be used as an internal NoSQL cache sits between your application and database like Memcached or Redis as well as a user facing NoSQL cache that sits between end user and your application.It supports headers, cookies, so you can store per-user data to same endpoint.

  • All features from HAProxy(HTTPS, HTTP/2, ACL, etc)
  • Conditional cache
  • Internal KV cache
  • User facing RESTful cache
  • Support any kind of data
  • Support all programming languages as long as HTTP is supported



See Getting Started


  1. global
  2. nuster nosql on data-size 200m
  3. frontend fe
  4. bind *:8080
  5. default_backend be
  6. backend be
  7. nuster nosql on
  8. nuster rule r1 ttl 3600

Basic Operations


  1. curl -v -X POST -d value1
  2. curl -v -X POST --data-binary @icon.jpg


curl -v


curl -v -X DELETE


Check status code.

  • 200 OK
    • POST/GET: succeeds
    • DELETE: always
  • 400 Bad request
    • empty value
    • incorrect acl, rules, etc
  • 404 Not Found
    • POST: failed on all rule tests
    • GET: not found
  • 405 Method Not Allowed
    • other methods
  • 500 Internal Server Error
    • any error occurs
  • 507 Insufficient Storage
    • exceeds max data-size

Per-user data

By using header or cookie in key, you can save per-user data to same endpoint.

  1. nuster rule r1 key if{ path /mypoint }
  2. nuster rule r2 key if{ path /mydata }


  1. curl -v -X POST -d "333"-H "userId: 1000"
  2. curl -v -X POST -d "555"-H "userId: 1001"
  3. curl -v -X POST -d "userA data"--cookie "sessionId: ijsf023xe"
  4. curl -v -X POST -d "userB data"--cookie "sessionId: rosre329x"


  1. curl -v
  2. <404NotFound
  3. curl -v -H "userId: 1000"
  4. <200 OK
  5. 333
  6. curl -v --cookie "sessionId: ijsf023xe"
  7. <200 OK
  8. userA data


You can use any tools or libs which support HTTP: curl, postman, python requests, go net/http, etc.