Redis常见使用案例

1、计数器

计数器是 Redis 的原子性自增操作可实现的最直观的模式了,它的想法相当简单:每
当某个操作发生时,向 Redis 发送一个 INCR 命令。
比如在一个 web 应用程序中,如果想知道用户在一年中每天的点击量,那么只要将用
户 ID 以及相关的日期信息作为键,并在每次用户点击页面时,执行一次自增操作即可。
比如用户名是 peter ,点击时间是 2012 年 3 月 22 日,那么执行命令:
INCR peter::2012.3.22 。
可以用以下几种方式扩展这个简单的模式:
 
可以通过组合使用 INCR 和 EXPIRE ,来达到只在规定的生存时间内进行计数
(counting)的目的。
redisUtil.incr("Perter:20210617",1);
redisUtil.incr("Perter:20210617",1);
redisUtil.incr("Perter:20210617",1);
long incr = redisUtil.incr("Perter:20210617", 1);
客户端可以通过使用 GETSET 命令原子性地获取计数器的当前值并将计数器清零,
更多信息请参考 GETSET 命令。
 
使用其他自增/自减操作,比如 DECR 和 INCRBY ,用户可以通过执行不同的操作
增加或减少计数器的值,比如在游戏中的记分器就可能用到这些命令。
 

2、限速器

 

限速器是特殊化的计算器,它用于限制一个操作可以被执行的速率(rate)。
限速器的典型用法是限制公开 API 的请求次数,以下是一个限速器实现示例,它将 API
的最大请求数限制在每个 IP 地址每秒钟十个之内:
     这个实现每秒钟为每个 IP 地址使用一个不同的计数器,并用 EXPIRE 命令设置生存时
间(这样 Redis 就会负责自动删除过期的计数器)。
    注意,我们使用事务打包执行 INCR 命令和 EXPIRE 命令,避免引入竞争条件,保证每
次调用 API 时都可以正确地对计数器进行自增操作并设置生存时间。
   以下是另一个限速器实现:
 

3、使用 bitmap 实现用户上线次数统计

 

使用位存储,信息状态只有 0 和 1

Bitmap是一串连续的2进制数字(0或1),每一位所在的位置为偏移(offset),在bitmap上可执行AND,OR,XOR,NOT以及其它位操作。

4、String类型的使用场景

5、List类型的使用场景

6、Hash类型使用场景

7、Set类型使用场景

交集、并集、差集等场景的使用

 

8、ZSet类型使用场景

9、Geospatial(地理位置)

10、Hyperloglog(基数统计)

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值