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命令非常实用,能够方便地进行原子性的增加/减少操作。需要注意的是,这两条命令仅支持作用于数值型的键值对。