gpt4 book ai didi

c - 使用 KV 存储管理 G-WAN 中的缓存

转载 作者:太空宇宙 更新时间:2023-11-04 04:00:39 25 4
gpt4 key购买 nike

我目前正在使用 G-Wan 网络服务器在 C 中开发一个网络应用程序,我想使用 G-Wan 附带的 KV 商店来存储生成的网页和页面次数的计数器已显示。

KV 存储是一个 HashMap ,可用于存储复杂数据,例如结构。

这就是我用来存储 HTML 数据的内容和一个作为计数器的整数:

typedef struct
{
char* HTML;
int nbDisplays;

} my_data;

Web 服务器使用多个线程,KV 存储在线程之间共享。

为了更新字段 nbDisplays,我使用原子操作 __sync_fetch_and_add (...)但是我不知道什么是更新指针字段 HTML 的最佳方法。

是否更好:

  1. 使用存储在 KV 中的现有结构来构建新结构以获取当前值并使用 G-WAN 提供的 add() 函数将其添加到 KV Store(此函数用新结构替换旧结构)
  2. 或者直接更新存储在 KV 存储中的结构的值?

我不习惯在多线程环境下编程,我害怕一些“奇怪”的行为......

最佳答案

kv_add() 被记录为一个原子操作。您可以使用它来更新您的计数器,但这比仅使用原子操作来增加 nbDisplays 计数器而不触及 HTML 指针(页面名称不改变)。

但是 G-Wan KV Store 的特性并没有让它看起来像一个hash map。您不能使用 hash map 进行这些范围查询。

关于c - 使用 KV 存储管理 G-WAN 中的缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12006364/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com