Redis string 类型提供了一些专门操作数值的命令,比如 INCRBY(自增)、DECRBR(自减)、INCR(加1) 和 DECR(减1) 等命令。数值操作,同样有特定的应用场景,比如常见的点赞、取消点赞、关注、取消关注等,这类和计数相关的场景都可以使用数值操作来实现。

注意:此时  key 对应的 value 值是必须是一个整数,或浮点数,使用命令对这个数值进行自增或自减操作。当然,这个数值也不能无限的增大或减小, Redis 规定的数值范围是 -9223372036854775808 至 9223372036854775807,如果超过了这个数值范围,Redis 就会报错。

常用命令

1) INCR命令

INCR 命令指对 value 数值做加 1 操作,其数值范围是 64 位的有符号整型(-9223372036854775808 至 9223372036854775807)。

如果 key 不存在,那么 Redis 将自动创建 key,并将 value 初始化为 1。以下示例,自动创建一个记录粉丝数量的 key,也就是 fans:num。

自动创建key,并将值置为 "1"
127.0.0.1:6379> INCR fans:num
(integer) 1
#粉丝数量加1
127.0.0.1:6379> get fans:num
"1"

2) DECR命令

该命令与 INCR 命令相反,它对数值执行减 1 操作。

粉丝取消了关注
127.0.0.1:6379> DECR fans:num
(integer) 0
#取消关注,恢复为0粉丝
127.0.0.1:6379> get fans:num
"0"

3) INCRBY命令

与 INCR 命令类似,不过该命令不是加 1 操作,它表示在原数的基础上进行指定数值的自增运算,语法格式如下:

INCRBY key increment  

其中 increment 表示指定增量值。示例如下:粉丝数每次增加 3 个。

127.0.0.1:6379> INCRBY fans:num 3
(integer) 3
127.0.0.1:6379> INCRBY fans:num 5
(integer) 8
127.0.0.1:6379> INCRBY fans:num 10
(integer) 18

4) DECRBY命令

该命名与 INCRBY 命令相反,它表示在原数值的基础上进行指定数值的自减运算。

INCRBY key decrement  

其中 decrement 指定递减的步长。示例如下:

原来粉丝数是18,执行自减操作
127.0.0.1:6379> DECRBY fans:num 2
(integer) 16
127.0.0.1:6379> DECRBY fans:num 4
(integer) 12
127.0.0.1:6379> DECRBY fans:num 8
(integer) 4
127.0.0.1:6379> DECRBY fans:num 84
(integer) -80

5) INCRBYFLOAT

该命令是 string 中唯一操作浮点数的命令,浮点数可以为正数或者负数,从而实现对数值的加减操作。示例如下:

127.0.0.1:6379> INCRBY fans:num 10
(integer) -70
127.0.0.1:6379> INCRBY fans:num 100
(integer) 30
127.0.0.1:6379> INCRBYFLOAT fans:num 1.5
"31.5"
127.0.0.1:6379> INCRBYFLOAT fans:num -10.5
"21"

在线练习工具:Try Redis
查看更多命令:Command reference – Redis

Redis INCR数值操作命令相关推荐

  1. java使用redis incr,JFinal Redis plugin 有关数值类型incr操作的bug

    先上测试代码:public class TestCache { private static final Cache testCache = Redis.use(CacheCons.TEST) ; p ...

  2. 使用redis incr计数来控制单位时间内对某接口的访问量

    控制单位时间内接口的访问量 使用redis incr计数来控制单位时间内对某接口的访问量,防止刷验证码接口之类的. 使用自定义注解的方式,在需要被限制访问频率的方法上加注解即可控制. 看实现方式,基于 ...

  3. Redis Cluster日常操作命令梳理

    在之前的一篇文章已经介绍了Redis Cluster及其部署,下面说下Redis Cluster日常操作命令: 一.以下命令是Redis Cluster集群所独有的,执行下面命令需要先登录redis: ...

  4. java操作redis并发_使用Redis incr解决并发问题的操作

    项目背景: 1.新增问题件工单,工单中有工单编码字段,工单编码字段的规则为 "WT"+yyyyMMdd+0000001. 2.每天的工单生成量是30W,所以会存在并发问题 解决思路 ...

  5. php redis获取incr的值,Redis Incr命令

    Redis Incr命令 Redis Incr 命令将 key 中储存的数字值增一. 如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作. 如果值包含错误的类型, ...

  6. redis incr mysql_redis命令_INCR

    INCR key 将 key 中储存的数字值增一. 如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作. 如果值包含错误的类型,或字符串类型的值不能表示为数字,那 ...

  7. redis incr命令最大值问题

    redis incr 最大值是 Long.MAX_VALUE的值 大于long.MAX_VALUE后就会抛出异常 @Testpublic void test3() throws Interrupted ...

  8. Redis INCR命令

    路人甲:嘿,兄弟,知不知道redis的incr命令怎么用? 路人丙:啥?你这都不知道,不就是将key值增1嘛? 路人甲:可以一直一直一直加吗? 路人丙:-- 下图是Redis命令参考网站给出的incr ...

  9. php redis incr过期时间,Redis 利用 incr 和 expire 来限流, 并发导致过期时间失效问题...

    当某一个接口需要限流时,可以采用redis的incr来递增,记录访问次数, 以及 expire 来设置失效时间. 大概的代码如下: r = redis.Redis.connect() key = &q ...

最新文章

  1. 013 Android锁机病毒分析
  2. nginx配置设置,使部分页面访问跳转到404页面
  3. python接口测试框架实战与自动化进阶(三)
  4. JavaFX自定义控件– Nest Thermostat第2部分
  5. 中国AI人才缺口500万,10本硬核技术书带你上车
  6. c语言 统计数量用count_C语言编程学习之递归实现汉诺塔图解!还有零基础入门视频~...
  7. [转载] 【python系列】numpy中的tile函数
  8. 线性代数第六版答案(全)
  9. Tomcat的Document base ……does not exist or is not a readable directory错误
  10. html设置图片为部分背景颜色,设置HTML的一个部分作为一个不同的背景颜色
  11. 阿里在职5年,一个女测试工师的坎坷之路
  12. vr线上虚拟展馆H5三维购物带的便利【商迪3D】与您细说
  13. 一个基于QT的解析interproscan结果的C++成员函数
  14. iOS系统各版本占比/占有率
  15. DNA数字信息存储的研究进展
  16. 评DeepMind神经网络求解MIP论文:并非无所不能
  17. iOS AFNetworking简介
  18. pes2017服务器维护,PES2017常见问题一览
  19. 计算机组成原理储存器系统实验,计算机组成原理实验存储器.ppt
  20. 电脑提示msvcr90.dll丢失的解决方法

热门文章

  1. WPS中编辑的公式显示不全之解决方案,实测有效
  2. 阿里云轻量应用服务器快照的使用及注意事项
  3. 计算机打印驱动怎么安装,打印机安装步骤,教您电脑怎么安装打印机驱动
  4. 一根RS485线可以并联多少设备
  5. 如何在Ubuntu中编译VLC-Android开源项目
  6. vue使用高德地图画电子围栏_地理围栏-辅助功能-开发指南-iOS 定位SDK | 高德地图API...
  7. 2022年注册会计师(CPA)考试经典试题及答案
  8. 生成调用自己的静态库lib
  9. 基于”PLUS模型+“生态系统服务多情景模拟预测
  10. 用户输入一个数,判断是奇数还是偶数代码