redis除了缓存还可以用来做哪些事情

54次阅读
没有评论

共计 1411 个字符,预计需要花费 4 分钟才能阅读完成。

自动写代码机器人,免费开通

这篇文章将为大家详细讲解有关 redis 除了缓存还可以用来做哪些事情,丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

Redis 应该说是目前最受欢迎的 NoSQL 数据库之一了。Redis 通常被作为缓存组件,用作缓存数据。不过,除了可以缓存数据,其实 Redis 可以做的事还有很多。

1、最新列表

例如新闻列表页面最新的新闻列表,如果总数量很大的情况下,尽量不要使用 select a from A limit 10,尝试 redis 的 LPUSH 命令构建 List,一个个顺序都塞进去就可以啦。不过万一内存清掉了咋办?也简单,查询不到存储 key 的话,用 mysql 查询并且初始化一个 List 到 redis 中就好了。

2、排行榜应用

实现这个功能主要用到的 redis 数据类型是 redis 的有序集合 zset。zset 是 set 类型的一个扩展,比原有的类型多了一个顺序属性,此属性在每次插入数据时会自动调整顺序值, 保证 value 值按照一定顺序连续排列。

我们假设是一个游戏经验值排行榜,那主要的实现思路是:

1、在一个新的玩家参与到游戏中时,在 redis 中的 zset 中新增一条记录(记录内容看具体的需求)score 为 0

2、当玩家的经验值发生变化时,修改该玩家的 score 值

3、使用 redis 的 ZREVRANGE 方法获取排行榜

3、计数器应用

Redis 的命令都是原子性的,你可以轻松地利用 INCR、DECR 命令进行原子性操作,来构建计数系统。由于单线程,可以避免并发问题,保证不会出错,而且 100% 毫秒级性能。

比如在一个 web 应用程序中,如果想知道用户在一年中每天的点击量,那么只要将用户 ID 以及相关的日期信息作为键,并在每次用户点击页面时,执行一次自增操作即可。

4、数据排重

Redis set 是可以自动排重的,当你需要存储一个列表数据,又不希望出现重复数据时,set 是一个很好的选择,并且 set 提供了判断某个成员是否在一个 set 集合内的重要接口。

实现方案:

set 的内部实现是一个 value 永远为 null 的 HashMap,实际就是通过计算 hash 的方式来快速排重的,这也是 set 能提供判断一个成员是否在集合内的原因。

5、实时的反垃圾系统

反垃圾系统通常都是基于关键词的,使用 Redis 储存关系词,能够利用 Redis 的高性能,为监控系统提供稳定及精确的实时监控功能,典型的案例如,邮件系统、评论系统等。

6、可以发布、订阅的实时消息系统

Redis 中 Pub/Sub 系统可以构建实时的消息系统,比如,很多使用 Pub/Sub 构建的实时聊天应用。

设计思路:

服务端发送消息(含标题,内容),标题按照一定规则存入 redis,同时标题(以最少的信息量)推送到客户端,客户点击标题时,获取相应的内容阅读.

如果未读取,可以提示多少条未读,redis 能够很快记数

根据一定时间清理缓存

技术实现:

需要 redis 数据库,客户端 websocket,服务器端 websocket

7、队列应用

队列在现在程序中应用十分广泛,比如日志推送、任务处理等等。以往通常使用 http sqs 实现队列,其实,使用 redis 的 list 类型,也可以实现队列。

关于 redis 除了缓存还可以用来做哪些事情就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向 AI 问一下细节

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-18发表,共计1411字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)