Advertisement

什么是Redis?Redis在项目中的使用场景?

阅读量:

什么是Redis

在日常的JavaWeb开发项目中,默认情况下都依赖于数据库(如SQLServer或MySQL...)来管理数据。大多数系统任务中通常不会出现大量的并发请求,在常规负载下并未发现显著问题。然而,在遇到需要处理海量数据的情况(如商品抢购场景或主页访问量骤增的情况),单个数据库在这种情况下可能会因为其基于磁盘存储而导致读写速度较慢的问题而产生性能瓶颈。具体表现为短时间内会有成千上万的请求涌入系统,并要求其在极短的时间内完成成千上万次的数据读写操作。这种高压力环境往往会让单个数据库难以承受工作负载压力,并最终可能导致服务中断甚至完全瘫痪

Redis (Remote Dictionary Server), 又称Remote Dictionary Service(RDS),是一种远程字典服务系统。作为开源软件项目, Redis采用ANSI C语言编写,具备良好的网络支持能力,既可以运行在内存中也可持久化存储;同时它采用日志型架构,并支持Key-Value数据库结构,提供多种编程接口供开发者使用。自2010年3月15日起,VMware成为Redis核心开发团队的主要管理方;而自2013年5月起,Pivotal集团对Redis项目的研发投入了更多资源

为了解决上述问题,在Java Web项目中通常会采用NoSQL技术。作为一个以内存为基础设计的数据库系统,并且具备一定程度的持久化能力。

RedisMongoDB 作为当下广泛应用于NoSQL数据库领域的主流技术,在性能方面Redis具有显著优势。该技术能够每秒可处理几十万次读写请求,并显著优于其他数据库系统。此外Redis还具备灵活扩展能力,在应用部署上支持集群架构、分布式设计以及主从同步配置模式。值得注意的是,在高并发场景下,Redis还具备一定程度的事务处理能力。

Redis在项目中的使用场景?

数据类型:

  • String

使用场景:封锁IP地址(Incrby命令)

  • Hash

使用场景:存储用户信息,Hset(key,filed,age) Hget(key,filed)

or

Set(key,用信息的字符串) Get(key)

不建议使用String类型

  • List

使用场景:实现最新消息的排行(push命令存入,pop命令取出)

  • Set:可以自动排重

在微博平台内,每个用户的个人好友信息会被组织成一个以集合形式存在的数据结构。对于任意两个用户而言,在计算他们的个人好友列表时,可以通过找出同时存在于彼此好友列表中的成员来确定他们的共同好友。

  • ZSet

使用场景:以某一个条件为权重,进行排序。

e.g 电商平台--商品详情的综合排名

全部评论 (0)

还没有任何评论哟~