我的编程空间,编程开发者的网络收藏夹
学习永远不晚

redis应用场景有哪些?

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

redis应用场景有哪些?

redis应用场景有哪些?相信很多新手小白对redis的了解处于懵懂状态,通过这篇文章的总结,希望你能收获更多。如下资料是关于???的内容。

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

Redis有许多应用场景,这个简单先列举7个应用场景:

一:缓存——热数据

热点数据(经常会被查询,但是不经常被修改或者删除的数据),首选是使用redis缓存,毕竟强大到冒泡的QPS和极强的稳定性不是所有类似工具都有的,而且相比于memcached还提供了丰富的数据类型可以使用,另外,内存中的数据也提供了AOF和RDB等持久化机制可以选择,要冷、热的还是忽冷忽热的都可选。

结合具体应用需要注意一下:很多人用spring的AOP来构建redis缓存的自动生产和清除,过程可能如下:

Select 数据库前查询redis,有的话使用redis数据,放弃select 数据库,没有的话,select 数据库,然后将数据插入redis

update或者delete数据库钱,查询redis是否存在该数据,存在的话先删除redis中数据,然后再update或者delete数据库中的数据

上面这种操作,如果并发量很小的情况下基本没问题,但是高并发的情况请注意下面场景:

为了update先删掉了redis中的该数据,这时候另一个线程执行查询,发现redis中没有,瞬间执行了查询SQL,并且插入到redis中一条数据,回到刚才那个update语句,这个悲催的线程压根不知道刚才那个该死的select线程犯了一个弥天大错!于是这个redis中的错误数据就永远的存在了下去,直到下一个update或者delete。

二:计数器

诸如统计点击数等应用。由于单线程,可以避免并发问题,保证不会出错,而且100%毫秒级性能!爽。

命令:INCRBY

别忘记持久化,毕竟是redis只是存了内存!

三:队列

相当于消息系统,ActiveMQ,RocketMQ等工具类似,但是个人觉得简单用一下还行,如果对于数据一致性要求高的话还是用RocketMQ等专业系统。

由于redis把数据添加到队列是返回添加元素在队列的第几位,所以可以做判断用户是第几个访问这种业务

队列不仅可以把并发请求变成串行,并且还可以做队列或者栈使用

四:位操作(大数据处理)

用于数据量上亿的场景下,例如几亿用户系统的签到,去重登录次数统计,某用户是否在线状态等等。

原理是:

redis内构建一个足够长的数组,每个数组元素只能是0和1两个值,然后这个数组的下标index用来表示我们上面例子里面的用户id(必须是数字哈),那么很显然,这个几亿长的大数组就能通过下标和元素值(0和1)来构建一个记忆系统,上面我说的几个场景也就能够实现。用到的命令是:setbit、getbit、bitcount

五:分布式锁与单线程机制

验证前端的重复请求(可以自由扩展类似情况),可以通过redis进行过滤:每次请求将request Ip、参数、接口等hash作为key存储redis(幂等性请求),设置多长时间有效期,然后下次请求过来的时候先在redis中检索有没有这个key,进而验证是不是一定时间内过来的重复提交

秒杀系统,基于redis是单线程特征,防止出现数据库“爆破”

全局增量ID生成,类似“秒杀”

六:最新列表

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

七:排行榜

谁得分高谁排名往上。命令:ZADD

以上就是redis应用场景的知识汇总,内容较为全面,小编相信有部分知识点可能是我们日常工作可能会见到或用到的。希望你能通过这篇文章学到更多知识。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

redis应用场景有哪些?

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

redis的场景应用有哪些

这篇文章主要介绍“redis的场景应用有哪些”,在日常操作中,相信很多人在redis的场景应用有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”redis的场景应用有哪些”的疑惑有所帮助!接下来,请跟着小编
2023-06-04

redis锁的应用场景有哪些

Redis锁的应用场景有以下几个:1. 分布式锁:在分布式系统中,多个节点需要共享某个资源时,使用Redis锁可以保证在同一时间只有一个节点能够访问该资源,以避免并发冲突。2. 并发控制:当多个线程或进程需要同时对某个共享资源进行操作时,使
2023-08-12

redis sortedset的应用场景有哪些

实时排行榜:可以使用sorted set来存储用户的分数,并根据分数来实时更新排行榜。带权重的任务调度:可以将任务的执行时间作为score存储在sorted set中,根据score来实现带权重的任务调度。时间轴:可以使用sorted
redis sortedset的应用场景有哪些
2024-04-09

redis集群的应用场景有哪些

高并发读写:当系统需要处理大量并发读写请求时,可以通过搭建Redis集群来实现数据的快速读写,提高系统的响应速度和并发处理能力。数据缓存:Redis集群可以作为缓存服务器,将热点数据存储在内存中,减少数据库的访问压力,提高系统的性能和响应速
redis集群的应用场景有哪些
2024-04-29

Redis中HyperLogLog的应用场景有哪些

基数统计:HyperLogLog可以用于对大数据集中的唯一值进行基数统计,例如统计网站的独立访客数、独立IP数等。网站UV统计:HyperLogLog可以用于统计网站的独立访客数,避免使用传统的去重方法会消耗大量的内存和时间。数据流量分
Redis中HyperLogLog的应用场景有哪些
2024-05-07

redis数据库的应用场景有哪些

Redis数据库有以下应用场景:1. 缓存:由于Redis具有高速读取和写入的能力,可以用作缓存数据库,将热门的数据存储在Redis中,以减轻后端数据库的负载。2. 队列系统:Redis支持发布/订阅模式,可以用作消息队列系统。生产者可以将
2023-09-21

redis中getset命令的应用场景有哪些

实现原子性的操作:利用getset命令可以实现原子性的操作,即同时获取原来的值并设置新的值,避免在多线程环境下出现数据不一致的问题。计数器的实现:可以利用getset命令实现计数器的功能,比如实现对某个值的自增、自减操作。缓存更新:可以利用
redis中getset命令的应用场景有哪些
2024-03-07

redis中setnx命令的应用场景有哪些

分布式锁:在分布式环境中,可以使用setnx命令来实现分布式锁,确保同一时刻只有一个客户端能够获取锁。防止重复提交:当用户提交表单或请求时,可以使用setnx命令来防止用户重复提交相同的数据。高并发场景:在高并发场景下,可以使用setnx命
redis中setnx命令的应用场景有哪些
2024-03-07

Java Dynamic 具体有哪些应用场景呢?(java dynamic有哪些应用场景 )

在Java编程领域,JavaDynamic(动态Java)具有多种广泛的应用场景,这些场景使得开发人员能够更灵活、高效地构建软件系统。一、Web开发中的动态页面生成在Web应用程序中,动态
Java Dynamic 具体有哪些应用场景呢?(java dynamic有哪些应用场景  )
Java2024-12-15

编程热搜

目录