首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在键/值存储上实现incr/decr?

如何在键/值存储上实现incr/decr?
EN

Stack Overflow用户
提问于 2010-03-11 21:44:30
回答 5查看 661关注 0票数 0

如何在键/值存储上实现incr/decr?

我使用的键值存储不支持incr和decr,这就是我想要创建它的原因。我使用过Redis和Memcached incr和decr,所以正如一些答案中提到的那样,这是一个完美的例子,说明了我希望incr和decr如何运行,所以感谢那些提到这一点的人。

EN

回答 5

Stack Overflow用户

发布于 2010-03-11 21:50:14

built in中,Memcache具有此功能

edit:看起来,如果不更新源代码,您将无法获得原子更新,因为似乎没有锁函数。如果有(这不是很好),你可以锁定值,获取它,在你的应用程序中增加它,放置它,然后解锁它。不过,这并不是最好的。

票数 1
EN

Stack Overflow用户

发布于 2010-03-11 21:51:49

拥有incr()函数的意义在于它都是存储的内部函数。你不需要把数据拉出来再推回来。

你正在做的事情听起来像是你想在你的代码中加入一些逻辑,将数据提取出来,递增,然后再推回……虽然这并不是很难(我想我刚刚描述了你是如何做的),但它在某种程度上忽略了这一点。

为了获得好处,您需要更改密钥库的源。这可能很简单。

但是很多缓存已经有这个功能了。如果你真的需要它来提高速度,也许你应该找一个像memcached这样的替代存储来支持它。

票数 1
EN

Stack Overflow用户

发布于 2010-03-12 23:37:18

看起来好像没有compareAndSet你就不走运了。但这将有助于从另一个角度来考虑这个问题。例如,如果您正在实现一个原子计数器来显示问题的赞成票数量,那么一种方法是为每个问题设置一个“表”,并为每个问题添加一个+1和一个“-1”。然后,为了“获取”,你需要对“表”求和。为了实现这一点,我假设“表”是便宜的,并且你不关心"get“需要多长时间才能计算,你只提到了incr/decr。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2425337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档