Redis怎么一步步弄计数,添加计数那些操作其实也没那么复杂
- 问答
- 2025-12-30 13:52:28
- 2
要理解Redis怎么一步步弄计数,我们可以把它想象成一个超级简单的“计数本”,这个本子特别厉害,能瞬间记住和修改无数个数字,而且几乎不会出错,我们平时在网站上看到的文章阅读量“10万+”、视频的播放次数、用户的点赞数,背后很可能就是Redis这个“计数本”在干活。
第一步:把Redis启动起来,准备好“计数本”
你得有Redis这个“计数本”,你可以把它安装在你自己的电脑(本地环境)或者一台专门的服务器上,安装好之后,你打开一个命令行窗口,输入启动命令,就像你打开一个笔记本准备写字一样,这时候,Redis服务就开始运行了,在后台等着你发号施令,为了跟这个“计数本”对话,你需要一个“传话员”,也就是Redis的客户端,最常见的就是用命令行工具,输入redis-cli,你就进入了和Redis对话的模式,光标会变成0.0.1:6379>,表示你已经连接成功了,可以开始往“计数本”上写东西了。
第二步:设定一个键,给计数对象起个名字
“计数本”不能乱写,得有条理,我们需要为每一个需要计数的东西起一个独一无二的名字,在Redis里这叫“键”(Key),我们要给一篇ID为123的文章统计阅读量,那这个键就可以叫article:123:views,这个名字起得越清晰越好,比如用冒号分隔,article表示类型是文章,123是文章ID,views表示是浏览量,这样你以后一看就知道这个键是干嘛的,这个名字就是我们以后找到这个计数值的“地址”。
第三步:最基本的操作——添加计数(加一)
每当有一个用户点击了这篇文章,我们就需要把阅读数加1,这是最常用的操作,在Redis里,命令非常简单,就是INCR,你只需要在客户端输入:
INCR article:123:views
然后按回车,神奇的事情发生了,Redis会立刻告诉你结果,如果这是第一次为这篇文章计数,Redis会自动创建这个article:123:views键,并把它的值设置为1,如果你再执行一次,它就会变成2,以此类推,这个操作是“原子性”的(这是个专业术语,但你可以简单理解为“绝对不会出错的操作”),即使成千上万人同时点击,Redis也能保证每个点击都准确地加上,不会漏掉也不会重复。
第四步:其他常用的计数操作
除了简单的加一,Redis还提供了其他几个非常顺手的小工具:
-
增加指定的数量:
INCRBY如果你的文章被一次性推荐了10次,你想直接加10,而不是执行10次INCR,就可以用:
INCRBY article:123:views 10这样浏览量就会一次性增加10。
-
减少计数:
DECR和DECRBY有加就有减,比如用户取消了一个赞,你就可以用DECRDECR user:456:likes或者用
DECRBY来减少指定数量。 -
获取当前的值:
GET当你要在网页上显示阅读量时,你需要把数字取出来,命令很简单:GET article:123:viewsRedis就会把当前的值返回给你。
第五步:处理更复杂一点的场景——设置初始值和检查是否存在

我们可能希望只有在键不存在的时候才设置一个初始值,一个新商品上架,库存设为1000,如果这个库存键已经存在(可能之前误操作过),我们就不想覆盖它,这时候可以用SETNX命令(SET if Not eXists):
SETNX product:789:stock 1000
这个命令的意思是:如果product:789:stock这个键不存在,我就把它创建出来,值设为1000;如果它已经存在,那我什么也不做。
另一个常见场景是,我们想先获取当前的值,然后立即把它设置为一个新值,比如在秒杀活动中,检查库存是否大于0,如果大于0就立刻减掉一个库存,这可以用GETSET命令,但更常见的做法是使用Redis的“事务”或者“Lua脚本”来保证多个操作的原子性,不过这已经是稍微进阶一点的用法了。
第六步:实际应用中怎么配合
在你的程序(比如用Python、Java、Go写的网站后台)里,你不会一直手动在命令行里输入命令,你会使用对应语言的Redis客户端库,这些库就像是帮你自动化和Redis“计数本”沟通的秘书,你的程序逻辑会是这样的:
- 用户打开了文章页面。
- 你的程序代码(比如一个Python函数)会通过Redis客户端库,向Redis服务器发送一条
INCR article:123:views命令。 - Redis服务器执行命令,将数字加1,并返回新的值。
- 你的程序可能把这个新的值拿出来,随着文章内容一起显示给用户。
整个过程非常快,通常在一毫秒内就能完成,所以用户根本感觉不到。
总结一下
用Redis弄计数,其实一点也不复杂,核心步骤就是:启动Redis -> 想好键的名字 -> 用INCR、DECR、INCRBY、GET这几个简单的命令来操作,它之所以强大,就是因为这些命令简单直接,速度快,并且能安全地处理并发情况,你先从这几个基础命令玩起,就能实现大部分常见的计数功能了,等到需要处理更复杂的逻辑,比如计数过期、批量操作时,再去了解Redis的其他高级功能也不迟。
本文由寇乐童于2025-12-30发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:http://waw.haoid.cn/wenda/71301.html
