nuster NoSQL

Jiang Wenyuan edited this page Aug 11, 2018 · 1 revision

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


    nuster nosql on data-size 200m
frontend fe
    bind *:8080
    default_backend be
backend be
    nuster nosql on
    nuster rule r1 ttl 3600

Basic Operations


curl -v -X POST -d value1
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.

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


curl -v -X POST -d "333" -H "userId: 1000"
curl -v -X POST -d "555" -H "userId: 1001"

curl -v -X POST -d "userA data" --cookie "sessionId: ijsf023xe"
curl -v -X POST -d "userB data" --cookie "sessionId: rosre329x"


curl -v
< 404 Not Found

curl -v -H "userId: 1000"
< 200 OK

curl -v --cookie "sessionId: ijsf023xe"
< 200 OK
userA data


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

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.