GWAN Key-Value持久性存储

时间:2014-04-24 03:11:10

标签: c key-value g-wan key-value-store

我想使用GWAN API Key-Value来记录和读取大量数据(以多线程方式)。问题是我的录音仅在当前页面上可用,因此无法在我的其他页面上使用。

您能告诉我一个例子或解释如何创建一个持久的KV商店(可以在我的所有子域上访问)吗?

以下是我目前使用的示例:

kv_t store;
kv_init(&store, "users", 10, 0, 0, 0);

kv_item item;
item.key = "pierre";
item.klen = sizeof("pierre") - 1;
item.val = "pierre@example.com";
item.flags = 0;
kv_add(&store, &item);

char *p = kv_get(&store, "pierre", sizeof("pierre") - 1);
xbuf_xcat(get_reply(argv), "<br>pierre's email address: %s<br>", p);

但不持久。

1 个答案:

答案 0 :(得分:1)

由于G-WAN脚本是独立编译和链接的,因此“全局”变量是“静态的”(对每个脚本而言),而不是所有脚本都可用。

因此,您必须将KV存储附加到持久性指针。 G-WAN提供persistent pointers不同的范围:

US_REQUEST_DATA = 200, // Request-wide pointer
US_HANDLER_DATA,       // Listener-wide pointer
US_VHOST_DATA,         // Virtual-Host-wide pointer
US_SERVER_DATA,        // global pointer (for maintenance script)

有几个G-WAN脚本示例演示了如何执行此操作:

http://gwan.ch/source/persistence.c http://gwan.ch/source/stream1.c http://gwan.ch/source/forum.c