悬崖边缘玩转Redis全家桶(全家桶redis)

Redis 全家桶 包括了众多的技术,从基本的Redis Key-value存储,到Redis Stream,Pub/Sub,GEO,Lua脚本,Redlock,HyperLogLog 和 Redis Cluster等。这个全家桶实际上能够拓展出更多Redis都是如何玩转复杂业务场景。今日,我们将把一组复杂业务场景,精心组装在一起,拼凑出一个Redis全家桶完整解决方案,这就是我们说的“悬崖边缘”!

让我们从一个网站的需求来具体说明一下Redis如何在实际场景中玩转全家桶:我们的网站需要支持海量的用户,这里面就引出了我们对注册用户的userID以及sessionID的跟踪;以及订单、购物车、商品各种信息的统计。

那么,为了实现这些功能,我们就可以将Redis全家桶里的各种技术组合起来,从而解决这些业务场景:

(1)在上面提到的注册用户的用户ID和sessionID的跟踪上,我们可以使用Redis的Hash(Hashes)类型,将用户ID和对应的sessionID以键值对的方式存储,如下所示:

HSET user:1000 10001 10002
```

(2)为了记录用户的登录历史记录,我们可以使用Redis的Streams(Streams)类型,以事件为单位,将登录历史记录以流的方式存储,如下所示:

XADD event:login_history * user_id 1000 timestamp 1587573521


(3)在订单、购物车和商品信息统计功能上,我们可以使用Redis的HyperLogLog(HyperLogLog)类型,快速对这些东西加以统计,不仅可以获得准确的数字,还可以有效的节省空间,如下所示:

PFADD order_info *

PFCOUNT order_info


以上就是使用Redis 的全家桶,玩转复杂业务场景的小技巧,可以快速准确地解决场景中遇到的问题。如果想尝试继续挑战自己,可以尝试使用Redis 的Pub/sub,订阅/发布(Pub/sub)以及Lua脚本(Lua scripting)等模式,构建出更多复杂的场景和功能。

数据运维技术 » 悬崖边缘玩转Redis全家桶(全家桶redis)