Memcached incr/decr 命令学习笔记

命令简介

Memcached中的incr和decr命令用于将key对应的值增加或减少一个特定的数值。它们是原子性的操作,支持并发使用。

incr命令用法: incr key value [delta]

decr命令用法: decr key value [delta]

其中,key为要增加/减少值的键名,value为要增加/减少的初始值,delta为要增加/减少的数值(默认为1)。

如果key不存在,则incr/decr命令会返回NOT_FOUND错误;如果key存在但其值不是数值型,则会返回CLIENT_ERROR错误。

举例说明

使用incr命令

假设我们有一个memcached实例,在其中存储了如下的键值对:

Copy Code
$ telnet localhost 11211 > set counter 10 > set price 99.5 > get counter VALUE counter 0 2 10 END > get price VALUE price 0 4 99.5 END

现在,我们想使用incr命令将counter键对应的值增加5,可以使用以下命令:

Copy Code
> incr counter 0 5 15 > get counter VALUE counter 0 2 15 END

注意,我们在第一次使用incr命令时,将delta设置为了0,这是为了保证incr命令的原子性。另外,我们没有针对price键使用incr命令,因为该键的值不是数值型的。

使用decr命令

与incr命令类似,我们也可以使用decr命令将counter键对应的值减少3:

Copy Code
> decr counter 0 3 12 > get counter VALUE counter 0 2 12 END

同样地,我们也需要保证decr命令的原子性,因此将delta设置为了0。

总结

Memcached中的incr和decr命令非常实用,能够方便地进行原子性的增加/减少操作。需要注意的是,这两条命令仅支持作用于数值型的键值对。