V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
sajesemuy
V2EX  ›  程序员

欢迎试用 HTTP 协议,面向用户, RESTful 的 NoSQL 缓存服务器 nuster

  •  
  •   sajesemuy ·
    jiangwenyuan · 2018-07-09 09:41:12 +08:00 · 1550 次点击
    这是一个创建于 2364 天前的主题,其中的信息可能已经有所发展或是发生改变。

    NuSTER 是一个基于 HAProxy 的高性能 HTTP 缓存服务器和 RESTful NoSQL 缓存服务器,既可以用作类似 Varnish 或者 Nginx 那样的 HTTP 缓存服务器,来缓存动态或者静态的 HTTP 资源,也可以用作 RESTful NoSQL 缓存服务器, 用 HTTP POST/GET/DELETE 来 添加 /取得 /删除 Key/Value。

    https://github.com/jiangwenyuan/nuster

    RESTful NoSQL 缓存服务器

    可以像 Memcached 或者 Redis 那样放在应用和数据库之间作为内部 KV 缓存使用,也可以放在用户和应用之间作为面向用户的 NoSQL 使用。 支持 header, cookie 等等,所以可以将不同的用户数据存到相同的路劲。

    • HAProxy 的所有特性(HTTPS, HTTP/2, ACL, etc)
    • 有条件的缓存
    • 内部 KV 缓存
    • 面向用户缓存
    • 支持任何类型的数据
    • 支持所有编程语言,不需要特定的库,只需 HTTP 支持

    基本操作

    Set

    curl -v -X POST -d value1 http://127.0.0.1:8080/key1
    curl -v -X POST --data-binary @icon.jpg http://127.0.0.1:8080/imgs/icon.jpg
    

    Get

    curl -v http://127.0.0.1:8080/key1
    

    Delete

    curl -v -X DELETE http://127.0.0.1:8080/key1
    

    Response

    Check status code.

    200 OK
        POST/GET: 成功
        DELETE: 总是
    400 Bad request
        空值
        不正确的 acl, rules, etc
    404 Not Found
        POST: rule tests 失败
        GET: not found
    405 Method Not Allowed
        其他的 methods
    500 Internal Server Error
        发生未知错误
    507 Insufficient Storage
        超过 data-size
    

    分用户的 data

    通过在 key 里加入 header, cookie 等等,可以将不同的用户数据存到相同的路劲。

    nuster rule r1 key method.scheme.host.uri.header_userId if { path /mypoint }
    nuster rule r2 key method.scheme.host.uri.cookie_sessionId if { path /mydata }
    

    Set

    curl -v -X POST -d "333" -H "userId: 1000" http://127.0.0.1:8080/mypoint
    curl -v -X POST -d "555" -H "userId: 1001" http://127.0.0.1:8080/mypoint
    
    curl -v -X POST -d "userA data" --cookie "sessionId: ijsf023xe" http://127.0.0.1:8080/mydata
    curl -v -X POST -d "userB data" --cookie "sessionId: rosre329x" http://127.0.0.1:8080/mydata
    

    Get

    curl -v http://127.0.0.1:8080/mypoint
    < 404 Not Found
    
    curl -v -H "userId: 1000" http://127.0.0.1:8080/mypoint
    < 200 OK
    333
    
    curl -v --cookie "sessionId: ijsf023xe" http://127.0.0.1:8080/mydata
    < 200 OK
    userA data
    
    

    支持任何语言,不需要第三方库,只要支持 HTTP 的客户端 /库: curl, postman, python requests, go net/http, etc.

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2683 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 04:00 · PVG 12:00 · LAX 20:00 · JFK 23:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.