共计 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 网 – 提供最优质的资源集合!