参考:
https://blog.csdn.net/weixin_45683778/article/details/136320916
Redis 是一个高性能的内存数据库,常用场景包括:
-
缓存系统:Redis作为缓存层,可以大大提高系统的读写性能。特别是对于读操作密集的应用,使用Redis缓存可以显著减少数据库的压力。
-
排行榜应用:Redis的列表和有序集合数据结构非常适合实现排行榜类应用。例如,实时得分排名、热门商品等。
-
计数器应用:Redis的原子操作使其成为实现计数器的理想选择。例如,网站访问量计数、用户点赞数等。
-
社交网络应用:Redis可以存储用户信息、点赞、评论等数据。通过使用Redis的集合、列表等数据结构,可以轻松地实现社交网络的实时性和可扩展性。
-
实时消息队列:Redis支持发布/订阅模式,可以作为实时消息队列使用。例如,实现实时通知、实时聊天等功能。
-
实时分析和监控:Redis可以用于收集和分析实时数据。通过Redis的数据结构,可以轻松地收集和分析用户行为、系统性能等数据。
-
分布式锁:Redis的SETNX命令可以用于实现分布式锁,保证在高并发环境下的数据一致性和安全性。
-
全页缓存:对于生成页面内容的应用,Redis可以作为全页缓存使用,以减少后端服务的负载,提高系统的响应速度。
-
过期数据:利用Redis的过期功能,可以轻松实现如验证码、热点数据等的定时过期。
-
高性能的读/写操作:由于Redis是基于内存的,因此具有极高的读写性能。对于需要快速响应的应用,如秒杀活动、抢购等场景,Redis是一个很好的选择。
1、字符串String
特性:
(1)最基本的数据类型,二进制安全的字符串,最大512M。
(2)支持字符串操作:strlen或取value的长度,返回的是字节的数量。
(3)数据交互有个二进制安全的概念,给我数据的时候你自己编码,字节数组到达我这里整理,帮你存,客户端之间商量好。
(4)支持数值计算操作:incr,decr
应用场景:做简单得键值对缓存,比如`Session,token,统计,限流,轻量级(kb级别)的FS内存级的文件系统—任何东西都可以变成字节数组(二进制),一些复杂的计数功能的缓存
2、列表List
特性:
按照添加顺序保持顺序的字符串列表,也就是存储一些列表型得数据结构,类似粉丝列表、文字得评论列表之类得数据。
应用场景:
可以做简单的消息队列的功能。另外还有一个就是,可以利用lrange命令,做基于redis的分页功能,性能极佳,用户体验好。
3、字典Hash
特性:
(1)key-value对的一种集合,存储结构化得数据,比如一个对象。
(2)这里value存放的是结构化的对象,比较方便的就是操作其中的某个字段。
应用场景:
经常会用来做用户数据的管理,存储用户的信息。比如做单点登录的时候,就是用这种数据结构存储用户信息,以cookieId作为key,设置30分钟为缓存过期时间,能很好的模拟出类似session的效果。
4、集合Set
特性:
无序的字符串集合,不存在重复的元素.
应用场景:
去重,还可以利用交集、并集、差集等操作,可以计算共同喜好,全部的喜好,自己独有的喜好等功能。
5、有序集合ZSet
特性:
已排序的字符串集合。去重并排序,如获取排名前几名。
应用场景:
sorted set多了一个权重参数score,集合中的元素能够按score进行排列。可以做排行榜应用,取TOP N操作。