Redis常见数据结构及其在项目中用法
- 其他
- 2025-08-25 20:06:01

Redis 可以使用 String 数据类型和 INCR 命令来统计访问量。
以下是在 Redis 控制台中统计访问量的示例:
设置计数器:
SET page_views 0这将创建一个名为 page_views 的键,并将其初始值设置为 0。如果该键已经存在,则会覆盖其值。
增加访问量:
INCR page_views每次有页面访问时,都执行 INCR 命令。这将原子性地将 page_views 键的值增加 1。
获取当前访问量:
GET page_views这将返回 page_views 键的当前值,即当前的访问量。
示例:
假设一个网站的首页被访问了几次,以下是在 Redis 控制台中的操作:
127.0.0.1:6379> SET page_views 0 # 初始化计数器 OK 127.0.0.1:6379> INCR page_views # 第一次访问 (integer) 1 127.0.0.1:6379> INCR page_views # 第二次访问 (integer) 2 127.0.0.1:6379> INCR page_views # 第三次访问 (integer) 3 127.0.0.1:6379> GET page_views # 获取当前访问量 "3"在这个例子中,page_views 键的值从 0 开始,每次访问后递增,最后通过 GET 命令获取到当前的访问量为 3。
除了String,Redis 还有其他数据结构可以用于更复杂的计数场景,例如:
Hash: 可以用来存储每个用户的访问次数。Sorted Set: 可以用来存储访问量排行榜。HyperLogLog: 可以用来估算独立访客数(UV)。但对于简单的总访问量统计,String 和 INCR 命令是最简单高效的方法。
Hash: 可以用来存储每个用户的访问次数。使用 Redis Hash 来存储每个用户的访问次数,关键在于如何设计 Hash 的 key 和 field。以下是一个常用的设计方案和示例:
设计方案:
Hash Key: 使用一个统一的前缀,加上一个能区分不同计数场景的标识。例如,如果我们要统计网站每个页面的用户访问次数,可以使用 page_views:{page_id} 作为 key,其中 {page_id} 是页面的 ID。Field: 使用用户 ID 作为 field。Value: 用户的访问次数。示例:
假设我们要统计页面 ID 为 1 和 2 的页面的用户访问次数。
Redis 控制台操作:
用户访问页面 1:
用户 ID 为 user1 访问了页面 1:
HINCRBY page_views:1 user1 1如果 page_views:1 这个 Hash 不存在,会自动创建。user1 这个 field 不存在也会自动创建,并将其值初始化为 1。如果 user1 已经存在,则将其值加 1。
用户 ID 为 user2 访问了页面 1:
HINCRBY page_views:1 user2 1用户ID为user1再次访问了页面1:
HINCRBY page_views:1 user1 1用户访问页面 2:
用户 ID 为 user1 访问了页面 2:
HINCRBY page_views:2 user1 1获取访问次数:
获取 user1 访问页面 1 的次数:
HGET page_views:1 user1返回结果应为 “2”
获取 user2 访问页面 1 的次数:
HGET page_views:1 user2返回结果应为 “1”
获取所有用户访问页面 1 的次数:
HGETALL page_views:1返回结果类似于:
1) "user1" 2) "2" 3) "user2" 4) "1"获取访问页面1的总次数
HVALS page_views:1返回页面1的所有value的列表,例如:
1) "2" 2) "1"然后对返回的列表求和,即可得到总的访问次数。
获取访问页面 2 的用户数:
HLEN page_views:2返回结果应为 “1”
总结:
page_views:{page_id} 作为 Hash 的 key,保证了不同页面的访问计数相互独立;用户 ID 作为 field,可以方便地查询特定用户的访问数据。
Redis常见数据结构及其在项目中用法由讯客互联其他栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Redis常见数据结构及其在项目中用法”
上一篇
【算法】788.逆序对的数量
下一篇
5-库函数