当前位置:首页 > 数码 > 不只仅是缓存-的多元化用处-Redis (缓存不等于下载的文件)

不只仅是缓存-的多元化用处-Redis (缓存不等于下载的文件)

admin8个月前 (04-22)数码57

当天咱们来聊聊的经常使用案例。

Redis是一种内存键值数据库。它支持多种数据结构,如String,Hash,List,Set和SortedSet。

图片

01缓存

Redis的最罕用的用例是缓存,以放慢网络运行的速度。在这种用例中,Redis将经常恳求的数据存储在内存中。它准许网络主机频繁访问的数据。这就缩小了数据库的负载,并缩短运行程序的照应期间。在大规模运行中,缓存散布在Redis主机集群中。

的多元化用处

Redis作为散布式缓存时须要思索的其余疑问包括:

02Session存储

另一个经常出现用例是将Redis用作Session存储,在有形态服务之间共享Session数据。

当用户登录网络运行程序时,服务端会创立一个惟一的SessionID,Session数据会存储在Redis中,而后Session作为Cookie的一局部前往给客户端。

当用户向运行程序收回恳求时,SessionID会蕴含在恳求中。有形态网络主机会经常使用Session数据。值得留意的是Redis是内存数据库。假设Redis服务重视启,存储在Redis中的Session数据会失落。

即使Redis提供了RDB和AOF等耐久化选项,但这些选项在重启时加载数据的期间往往太长,不适用。在实践消费环境中,数据会复制到备份实例。假设主实例解体,备份迅速更新,接收流量。

03散布式锁

须要协调对某些共享资源的访问时,就会经常使用散布式锁。Redis经过其原子命令(如SETNX,SETifNoteXists)来做散布式锁。它准许调用者设置一个不存在的键。

比如,客户端经过设置一个惟一的Key来失掉锁:

SETNXlock"1234abcd"EX3

假设Key尚未设置,SETNX命令前往1,标明锁已被客户端失掉。客户端成功上班后删除Key,监禁锁。

假设Key已被设置,SETNX命令前往0,标明锁已被其余客户机持有。在这种状况下,客户端会期待偏重试SETNX操作,直到锁被其余客户端监禁。

请留意,这种便捷的成功关于许多用例来说曾经足够好了,但并非齐全容错。关于消费运行,许多Redis客户端库提供高品质的散布式锁成功。

04限流

Redis可用作限流。一个十分基本的限流算法是这样上班的:

关于每个用户恳求,其恳求的IP或用户ID用作Key。每个恳求都会使键值递增。将以后计数与准许的速率限度启动比拟,假设计数在速率限度范畴内,则处置恳求。假设计数超越速率限度,则拒绝恳求。Key可以设置为在特定期间窗口(如一分钟)后过时,以重置下一个期间窗口的计数。

05游戏排行榜

关于大少数规模不是很大的游戏来说,Redis是一种很好的成功形式。SortedSet是成功这一配置的基本数据结构。

SortedSet的每个元素都有一个与之相关的分数。元素按分数排序。这样就可以在对数期间内成功排序。

06购物车

咱们可以经常使用Hash来示意购物车中的键值对。关于便捷的电商平台来说,在Redis中成功购物车可以统筹用户体验和极速交付。

07计算用户留存率

咱们可以经常使用Bitmap来示意每天登录的用户并计算用户保管率。这种计数配置占用的内存很少。

08信息队列

咱们可以经常使用List来做信息队列。也可以经常使用Redis的PubSub配置来成功相似的信息总线配置。


redis一般用来干嘛

redis是一个单线程的NoSQL数据库,主要用来做数据缓存,一般大型网站的应用和数据库之间的那一层就是Redis。 比如京东商城的页面查找功能,用户接触到的查询的第一层就是Redis数据缓存层,缓存中找不到的数据,再进入数据库查询。 Redis中缓存热点数据,能够保护数据库,提高查询效率。 NoSQL,泛指非关系型的数据库。 随着互联网web2.0网站的兴起,传统的关系数据库在处理web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,出现了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。 NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,特别是大数据应用难题。

redis缓存机制一般会影响软件的哪些功能?

Redis缓存机制主要作用在于提高数据访问速度、减轻数据库压力、提高系统性能。 但是,使用Redis缓存机制可能会影响软件的以下功能:数据一致性:由于Redis缓存中的数据与数据库中的数据可能存在不一致的情况,这会导致用户在查询数据时看到不一致的结果。 数据过期:缓存数据有过期时间,如果缓存数据过期,需要重新从数据库中获取,这可能会影响查询速度。 数据持久化:Redis提供了RDB和AOF两种持久化策略,但在某些情况下,如意外宕机等,可能会导致缓存数据的丢失。 内存限制:Redis是基于内存的存储系统,当缓存数据量过大时,可能会消耗大量内存资源,影响软件其他功能的性能。 缓存穿透、缓存击穿和缓存雪崩:这些现象可能导致缓存系统承受较大压力,进而影响整个软件的性能和稳定性。 分布式环境:在分布式环境下,需要考虑缓存数据的同步和一致性问题,否则可能会导致软件功能异常。 缓存维护:需要定期对缓存进行维护,如清除无用的缓存数据,避免缓存数据过多影响系统性能。 在使用Redis缓存机制时,需要充分考虑这些可能影响软件功能的因素,并采取相应的措施进行优化。

免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。

标签: Redis

“不只仅是缓存-的多元化用处-Redis (缓存不等于下载的文件)” 的相关文章

Redis数据删除后-内存占用为何居高不下 (redis数据类型)

Redis数据删除后-内存占用为何居高不下 (redis数据类型)

作为面试经验丰富的开发人员,肯定会遇到过这样的问题:做了数据删除操作,为什么使用 top 命令时,仍然显示 Redis 占用了大量内存? 答案 这是因为当数据删除后,Re...

一站式-满足您的所有-解决方案-需求-Redis-Redis (一站式满足您的资金需求让您用款无忧)

一站式-满足您的所有-解决方案-需求-Redis-Redis (一站式满足您的资金需求让您用款无忧)

Introduction Redis is an efficient in-memory database designed to store data invarious formats, s...

Redis中分布式锁的防死锁机制 (redis中文网)

Redis中分布式锁的防死锁机制 (redis中文网)

分布式锁在分布式系统中是一种常见的需求。它用于防止对共享资源的并发访问,确保数据一致性和可靠性。在 Redis 中实现分布式锁可以通过使用 SETNX(SET if Not eXists)命令来尝...

排查与处置指南-Redis大Key危害 (排查与处置指的是什么)

排查与处置指南-Redis大Key危害 (排查与处置指的是什么)

这是一位同窗往年秋招参与得物一面遇到的疑问,完整面经如下: 这个疑问在面试中还是比拟容易遇到的,尤其是在调查性能优化相关常识点的时刻。 通常状况下,问了bigkey(大Key)还会继续...

Redis-使用哈希槽而非一致性哈希的原因 (redis淘汰策略有哪些)

Redis-使用哈希槽而非一致性哈希的原因 (redis淘汰策略有哪些)

引言 在分布式系统中,数据分片和负载均衡是至关重要的。哈希槽和一致性哈希两种方法都可以实现这些目标,但它们各有优缺点。本文将讨论为什么在某些情况下使用哈希槽而不是一致性哈希。 哈希槽 哈希...

上古程序猿推戴经常使用Redis的执著理由 (上古教程)

上古程序猿推戴经常使用Redis的执著理由 (上古教程)

最近,在知乎上看到这样一个疑问: 有些上古程序猿不时保持推戴经常使用怎样办? 终究用不用Redis?为什么用?怎样用?让咱们看看网友怎样说…… @灵剑...

Redis-全面了解数据耐久性和复原机制-深度解析-耐久化 (redis淘汰策略有哪些)

Redis-全面了解数据耐久性和复原机制-深度解析-耐久化 (redis淘汰策略有哪些)

我们都知道在关于的开发或许面试的环节中,很容易就会遇到这个关于Redis耐久化的疑问,而我们在面试的时刻,经常会有小同伴只能说出这个Redis耐久化的两种形式,后续或许还会对比一些区别,然而关于怎...

解锁你的海量数据摸索之旅-Redis-全文搜查-的弱小新配置 (解锁海量任务)

解锁你的海量数据摸索之旅-Redis-全文搜查-的弱小新配置 (解锁海量任务)

在2021年我就了解到earch这个名目,并曾经把它用于我的开源名目newbee-mall-pro中。 就我的经常使用体验来说,便捷场景下,用来平替Elasticsearch的经常使用场景曾...