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

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

admin7个月前 (04-22)数码49

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

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 (缓存不等于下载的文件)” 的相关文章

安装并配置-Kubernetes-集群 (安装并配置mysql的实验总结)

安装并配置-Kubernetes-集群 (安装并配置mysql的实验总结)

日常开发中,基于自然支持散布式锁,大家在线上散布式名目中都经常使用过Redis锁。本文重要针对日常开发中加锁环节中某些意外场景启动解说与剖析。本文解说示例代码都在名目目录下 RedisLo...

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

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

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

探索强大的工具优化集群性能和可靠性-Redis运维神器 (探索强大的工作有哪些)

探索强大的工具优化集群性能和可靠性-Redis运维神器 (探索强大的工作有哪些)

监控工具 INFO 命令 INFO 命令是 Redis 提供的监控命令,可以返回丰富的实例运行监控信息。INFO 命令的参数为 section,取值如下:...

引发业界震荡-Redis叛逃开源-得罪了 (引发业界震荡的因素)

引发业界震荡-Redis叛逃开源-得罪了 (引发业界震荡的因素)

Redis 许可变更:开源界的巨石 导言 近来,内存数据库供应商 Redis 宣布了一项重大变更,该变更将在开源界掀起轩然大波。Redis 将转向双许可模式,并采用更严格的许可条款。此举引起了社区...

成功多规则限流的思索与通常-Redis (成功的规则)

成功多规则限流的思索与通常-Redis (成功的规则)

市面上很多引见如何成功限流的,然而大局部都有一个缺陷,就是只能成功繁多的限流,比如1分钟访问1次或许60分钟访问10次这种,然而假构想一个接口两种规则都须要满足呢,咱们的名目又是散布式名目,应该如何处...

Redis轻松添加从节点-系统性能再飙升-零烦恼-零阻塞 (redis轻量级锁和redisson分布式锁的使用场景)

Redis轻松添加从节点-系统性能再飙升-零烦恼-零阻塞 (redis轻量级锁和redisson分布式锁的使用场景)

措施 配置复制积压缓冲区。 配置复制延迟。 增加主节点资源。 控制并发复制连接数。 从节点的磁盘写入延迟。 从节点的最大内存...

Redis-感觉-变慢了-检查这些潜在原因 (redis淘汰策略有哪些)

Redis-感觉-变慢了-检查这些潜在原因 (redis淘汰策略有哪些)

前言 本期继续分享 Redis 相关知识,帮助大家在 Redis 变慢时从容应对,冷静分析问题。为了方便阅读,文章分为上下两篇。 Redis 作为一款业内使用率最高的内存数据库,其性能...

稳坐钓鱼台!-集群中的武林秘籍-Redis高可用 (稳坐钓鱼台是什么意思)

稳坐钓鱼台!-集群中的武林秘籍-Redis高可用 (稳坐钓鱼台是什么意思)

引言 前面我们已经聊过的主从同步(复制)和哨兵机制,这期我们来聊Redis的集群模式。但是在超大规模的互联网应用中,业务规模不断扩展,用户量持续增多时,原有的主从+哨兵机制已经不满足我们的需求了...