Redis在项目中的应用场景有哪些

39次阅读
没有评论

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

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

了解 Redis 在项目中的应用场景有哪些?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是丸趣 TV 小编给大家带来的参考内容,让我们一起来看看吧!

Redis 是一个开源的底层使用 C 语言编写的 key-value 存储数据库。可用于缓存、事件发布订阅、高速队列等场景。而且支持丰富的数据类型:string(字符串)、hash(哈希)、list(列表)、set(无序集合)、zset(sorted set:有序集合)

Redis 在项目中的应用场景

1、缓存数据

最常用,对经常需要查询且变动不是很频繁的数据 常称作热点数据。

2、消息队列

相当于消息订阅系统,比如 ActiveMQ、RocketMQ。如果对数据有较高一致性要求时,还是建议使用 MQ)

3、计数器

比如统计点击率、点赞率,redis 具有原子性,可以避免并发问题

4、电商网站信息

大型电商平台初始化页面数据的缓存。比如去哪儿网购买机票的时候首页的价格和你点进去的价格会有差异。

5、热点数据

比如新闻网站实时热点、微博热搜等,需要频繁更新。总数据量比较大的时候直接从数据库查询会影响性能

Redis 数据类型的应用场景

前面提到了 Redis 支持五种丰富的数据类型,那么在不同场景下我们该怎么选择呢?

1、String

字符串是最常用的数据类型,他能够存储任何类型的字符串,当然也包括二进制、JSON 化的对象、甚至是 base64 编码之后的图片。在 Redis 中一个字符串最大的容量为 512MB,可以说是无所不能了。

2、Hash

常用作存储结构化数据、比如论坛系统中可以用来存储用户的 Id、昵称、头像、积分等信息。如果需要修改其中的信息,只需要通过 Key 取出 Value 进行反序列化修改某一项的值,再序列化存储到 Redis 中,Hash 结构存储,由于 Hash 结构会在单个 Hash 元素在不足一定数量时进行压缩存储,所以可以大量节约内存。这一点在 String 结构里是不存在的。

3、List

List 的实现为一个双向链表,即可以支持反向查找和遍历,更方便操作,不过带来了部分额外的内存开销,Redis 内部的很多实现,包括发送缓冲队列等也都是用的这个数据结构。另外,可以利用 lrange 命令,做基于 Redis 的分页功能,性能极佳,用户体验好。

4、Set

set 对外提供的功能与 list 类似是一个列表的功能,特殊之处在于 set 是可以自动排重的,当你需要存储一个列表数据,又不希望出现重复数据时,这个时候就可以选择使用 set。

5、Sort Set

可以按照某个条件的权重进行排序,比如可以通过点击数做出排行榜的数据应用。

Redis 特点:

1、Redis 是纯内存操作,需要的时候需要我们手动持久化到硬盘中

2、Redis 是单线程,从而避开了多线程中上下文频繁切换的操作。

3、Redis 数据结构简单、对数据的操作也比较简单

4、使用底层模型不同,它们之间底层实现方式以及与客户端之间通信的应用协议不一样,Redis 直接自己构建了 VM 机制,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求

5、使用多路 I / O 复用模型,非阻塞 I /O

感谢各位的阅读!看完上述内容,你们对 Redis 在项目中的应用场景有哪些大概了解了吗?希望文章内容对大家有所帮助。如果想了解更多相关文章内容,欢迎关注丸趣 TV 行业资讯频道。

向 AI 问一下细节

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

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