您当前所在位置: > 网游 > 综合热点

JAVA编程——我们为什么要用Redis

时间:2018-08-01 06:31:48  来源:  作者:网络
请注意:本文为编辑制作专题转载的资讯,页面显示的时间仅为生成静态页面时间而非具体内容事件发生的时间,由此给您带来的不便敬请谅解!

定义Redis是一个使用ANSI C编写的开源、支持网络、基于内存、可选持久性的键值对存储数据库Redis可以通过一些键值类型来存储数据。 键值类型: String字符类型 map散列类型 list列表类型 set集合类型 sortedset有序集合类型

特性

开源

多种数据结构

基于键值的存储服务系统

高性能,功能服务

redis的前世今生

谁在使用redis

github

twitter

微博

Stack Overflow

阿里巴巴

百度

美团

搜狐

应用场景

缓存(数据查询、短连接、新闻内容、商品内容等等)。(最多使用) 分布式集群架构中的session分离。 聊天室的在线好友列表。 任务队列。(秒杀、抢购、12306等等) 应用排行榜。 网站访问统计。 数据过期处理(可以精确到毫秒)Redis不是万金油

在面试的时候,常被问比较下Redis与Memcache的优缺点,个人觉得这二者并不适合一起比较,一个是非关系型数据库不仅可以做缓存还能干其它事情,一个是仅用做缓存。常常让我们对这二者进行比较,主要也是由于Redis最广泛的应用场景就是Cache。那么Redis到底能干什么?又不能干什么呢?

Redis都可以干什么事儿

缓存,毫无疑问这是Redis当今最为人熟知的使用场景。再提升服务器性能方面非常有效;

排行榜,如果使用传统的关系型数据库来做这个事儿,非常的麻烦,而利用Redis的SortSet数据结构能够非常方便搞定;

计算器/限速器,利用Redis中原子性的自增操作,我们可以统计类似用户点赞数、用户访问数等,这类操作如果用MySQL,频繁的读写会带来相当大的压力;限速器比较典型的使用场景是限制某个用户访问某个API的频率,常用的有抢购时,防止用户疯狂点击带来不必要的压力;

好友关系,利用集合的一些命令,比如求交集、并集、差集等。可以方便搞定一些共同好友、共同爱好之类的功能;

简单消息队列,除了Redis自身的发布/订阅模式,我们也可以利用List来实现一个队列机制,比如:到货通知、邮件发送之类的需求,不需要高可靠,但是会带来非常大的DB压力,完全可以用List来完成异步解耦;

Session共享,以PHP为例,默认Session是保存在服务器的文件中,如果是集群服务,同一个用户过来可能落在不同机器上,这就会导致用户频繁登陆;采用Redis保存Session后,无论用户落在那台机器上都能够获取到对应的Session信息。

Redis不能干什么事儿

Redis感觉能干的事情特别多,但它不是万能的,合适的地方用它事半功倍。如果滥用可能导致系统的不稳定、成本增高等问题。

比如,用Redis去保存用户的基本信息,虽然它能够支持持久化,但是它的持久化方案并不能保证数据绝对的落地,并且还可能带来Redis性能下降,因为持久化太过频繁会增大Redis服务的压力。

简单总结就是数据量太大、数据访问频率非常低的业务都不适合使用Redis,数据太大会增加成本,访问频率太低,保存在内存中纯属浪费资源。

选择总需要找个理由

上面说了Redis的一些使用场景,那么这些场景的解决方案也有很多其它选择,比如缓存可以用Memcache,Session共享还能用MySql来实现,消息队列可以用RabbitMQ,我们为什么一定要用Redis呢?

速度快,完全基于内存,使用C语言实现,网络层使用epoll解决高并发问题,单线程模型避免了不必要的上下文切换及竞争条件;

注意:单线程仅仅是说在网络请求这一模块上用一个线程处理客户端的请求,像持久化它就会重开一个线程/进程去进行处理

丰富的数据类型,Redis有8种数据类型,当然常用的主要是 String、Hash、List、Set、 SortSet 这5种类型,他们都是基于键值的方式组织数据。每一种数据类型提供了非常丰富的操作命令,可以满足绝大部分需求,如果有特殊需求还能自己通过 lua 脚本自己创建新的命令(具备原子性);

除了提供的丰富的数据类型,Redis还提供了像慢查询分析、性能测试、Pipeline、事务、Lua自定义命令、Bitmaps、HyperLogLog、发布/订阅、Geo等个性化功能。

Redis的代码开源在GitHub,代码非常简单优雅,任何人都能够吃透它的源码;它的编译安装也是非常的简单,没有任何的系统依赖;有非常活跃的社区,各种客户端的语言支持也是非常完善。另外它还支持事务(没用过)、持久化、主从复制让高可用、分布式成为可能。

做为一个开发者,对于我们使用的东西不能让它成为一个黑盒子,我们应该深入进去,对它更了解、更熟悉。今天简单说了下Redis的使用场景,以及为什么选择了Redis而不是其它。下次对Redis的内部数据结构及常用命令的时间复杂度进行总结。

相关下载

玩家评论

最幸福的编程语言:第一名竟然是它!PHP受尽吐槽~_编程人员

原标题:最幸福的编程语言:第一名竟然是它!PHP受尽吐槽~ 来自:Quant最爱 IT界有很好梗,比如: 今天,我们通过Github和来自开发者调查的数据给大家揭秘,哪门详情>>

阅读: 3
日期: 2020-05-09
TIOBE12月编程语言排行榜:争夺年度编程语言,Java、C、Python、C#即将开战!

原标题:TIOBE 12 月编程语言排行榜:争夺年度编程语言,Java、C、Python、C# 即将开战! 年末将至,谁将摘得年度编程语言称号? 整理 | 屠敏 须臾之间,2019 详情>>

阅读: 4
日期: 2019-12-10
潘石屹编程语言怎么回事潘石屹编程语言什么情况

11月14日,潘石屹迎来56岁生日,他在微博宣布打算学习新语言——Python。就此,网友炸了:“地产商都来抢饭碗了!”15日,潘石屹再次在微博上详情>>

阅读: 7
日期: 2019-11-15
TIOBE 2 月编程语言排行榜:Python 逼近 C,Groovy 重回 TOP20

原标题:TIOBE 2 月编程语言排行榜:Python 逼近 C,Groovy 重回 TOP20 作者 | 唐小引 出品 | CSDN(ID:CSDNnews) 新月伊始,一月一更的 TIOBE 编程语言社区发布了最新详情>>

阅读: 15
日期: 2019-06-25
PYPL 二月榜单发布:最受欢迎的编程语言、IDE 和数据库都是哪些

原标题:PYPL 二月榜单发布:最受欢迎的编程语言、IDE 和数据库都是哪些 PYPL(PopularitY of Programming Language,编程语言流行指数) 二月榜单已发布,目前包含四个详情>>

阅读: 24
日期: 2019-06-25
TIOBE 2 月编程语言排行榜:Python 逼近 C,Groovy 重回 TOP20

原标题:TIOBE 2 月编程语言排行榜:Python 逼近 C,Groovy 重回 TOP20 关注我哟 摘要 TIOBE 于近日公 详情>>

阅读: 5
日期: 2019-05-03
aardio编程语言最新官方版下载

游戏类型:行业软件文件大小:5.67MB软件语言:简体中文运营:软件授权:免费版应用平台:WinAll安全认证:aardio编程语言最新官方版下载版本:v16.11  【软件介绍】  快手AAu详情>>

阅读: 14
日期: 2019-04-03
plc编程软件有哪些推荐_plc编程软件哪个好

PLC编程是一种数字运算操作的电子系统,专为在工业环境下应用而设计。它采用可编程序的存储器,用来在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,并通过数字式、模拟式的输入和输出,详情>>

阅读: 7
日期: 2019-03-12
【电脑编程软件下载】编程软件有哪些_编程软件哪个好

今天小编为大家带来的是电脑编程软件合集,感兴趣的用户们不妨来手机56这里看看吧!TOP1:eclipse64位中文版(编程软件类)详情>>

阅读: 1
日期: 2019-03-02
《编程模拟器》训练用国际象棋机器人通关攻略

加斯帕罗夫是著名的俄罗斯国际象棋选手,曾23次获得世界排名第一,是位国际象棋大师。而在《编程模拟器》的第34关,我们就要制作一款媲美加斯帕罗夫的国际象棋机器人,下面就随着小编一起看看这一关的金牌该怎么详情>>

阅读: 8
日期: 2019-01-24
《编程模拟器》Color business金牌通关攻略

在《编程模拟器(Newtechnologiesintoymanufacturing)》中,第25关Industrialespionage需要我们进行双色的筛选,但详情>>

阅读: 8
日期: 2019-01-23
《编程模拟器》服装店的销售预估金牌通关攻略

在《编程模拟器(Newtechnologiesintoymanufacturing)》第24关服装店的销售预估中,我们要将三色进行快速排序,此关卡只有所有奖牌的时间详情>>

阅读: 6
日期: 2019-01-23
编程游戏推荐_编程游戏app下载_编程游戏大全

想要在游戏中学习编程吗?亦或是自己有一身编程技术,想要在一些独特的策略游戏中一展身手?游迅网精选好玩烧脑的编程策略手游,自己定制机器人、设备AI,让手中的每一个终端根据设置的指令进行对战!刺激畅快,头详情>>

阅读: 11
日期: 2019-01-16
《杀戮尖塔》机器人重编程怎么样 重编程详细介绍

导 读 在《杀戮尖塔》中,重编程和《三国杀》诸葛...很好用的滤牌辅助卡,有效清除基础牌,状态牌,以及诅咒...可以不断通过尝试改变世界线,在sl中找到一条通关的... 详情>>

阅读: 2
日期: 2018-12-31
《杀戮尖塔》机器人重编程详细介绍 重编程怎么样

原标题:《杀戮尖塔》机器人重编程详细介绍重编程怎么样在《杀戮尖塔》中,重编程和《三国杀》诸葛亮的技能观星一样,都可以检索抽牌堆的牌,然后排序。不过这张牌是为了下回详情>>

阅读: 4
日期: 2018-11-14
我的世界编程一小时网页游戏

我的世界编程一小时网页游戏详情>>

阅读: 2
日期: 2018-09-11
我们为什么要学习DOM编程?

DOM是DocumentObjectModel的缩写,中文名称是文档对象模型。DOM是处理HTML页面的标准编程接口,DOM可被JavaScript用来读取、改变HTML的内容和结构。前端三大件指H详情>>

阅读: 0
日期: 2018-09-03
傲梦儿童编程四周年,大力推动少儿编程教育

近日,国内青少儿编程开创者傲梦推出了“傲梦四周年,荐面礼上礼”活动。活动自推出以来,就引发了众多傲梦家长参与,获得了无数家长点赞好评。原定于7月底结束的“荐”面礼活动,应广大家长强烈要求,将延期至9详情>>

阅读: 2
日期: 2018-08-31
全栈工程师服务端编程语言选择java还是php?

全栈工程师是掌握多种技能的程序员,一般我们把前后台工程师结合起来就是我们所谓的全栈工程师,全栈工程师可以一个人完成一个网站的完整开发过程。目前全栈工程师后台编程语言最多是PHP开发,PHP是专注we详情>>

阅读: 0
日期: 2018-08-28
编程解谜游戏《70亿人》:也许你学不会编程,但你能学会逻辑

叶柖对于《70亿人》的评测70亿人是个编程解谜游戏,在游戏中你会用到各种编程语句块去解决问题。游戏界面看详情>>

阅读: 5
日期: 2018-08-27
【流水】论如何用编程语言迫害凌渡

【流水】论如何用编程语言迫害凌渡详情>>

阅读: 2
日期: 2018-08-25
计算机编程语言有多少种 应用最广的为什么是JavaEE

如今国内实用的计算机编程语言有很多,但是应用最广,学习及使用人数最多的就是JavaEE编程语言,如今参加JavaEE培训的人也在不断的增加。本篇文章扣丁学堂小编就和读者们一块来看一下计算机编程语言有详情>>

阅读: 7
日期: 2018-08-23
最新编程语言排行榜出炉:Swift和Kotlin好像开始凉了

圆栗子发自凹非寺苹果的Swift和安卓开发者喜欢的Kotlin,是近年来增长最快的两种编程语言。据分析公司RedMonk统计,2014年诞生的Swift,跻身热度榜单Top15,是所有语言中详情>>

阅读: 16
日期: 2018-08-22
RedMonk 编程语言排名:Objective-C 升至第九

美国当地时间8月10日,RedMonk宣布推出2018年6月(Q3季度)RedMonk编程语言排名,下面让我们看看这份姗姗来迟的编程语言报告带来了哪些消息。开始之前,我们先来了解一下关详情>>

阅读: 2
日期: 2018-08-19
转行程序员学什么编程语言好?编程语言排行帮了解一下

对于熟悉程序员的人来说,编程语言非常之多,那么学习哪个编程语言好呢?很多人都是根据兴趣去选择的,比如说自己对大数据感兴趣,那么会更多的选择Python,如果对软件开发感兴趣更多的选择Java等等。而详情>>

阅读: 5
日期: 2018-08-13
2018年排名前十的编程语言Python扩大领先优势 Assembly进入前十

IEEESpectrum发布了第五年的编程语言年度排行榜。为对排行榜中的编程语言进行排名,作者所在团队所使用的评价方法综合了来自多个来源的指标。由于认识到不同的程序员有不同的需求和兴趣领域,我们并详情>>

阅读: 5
日期: 2018-08-06
编程猫学员陈彧卓:11岁编程少年创造的游戏王国

陈彧卓在成都市青羊区实验中学附属小学读四年级,喜欢读《哈利波特》的他学习编程猫已经两年了。至于为什么学习编程猫,他这样告诉记者,“很早以前,我学详情>>

阅读: 7
日期: 2018-08-06
编程语言史话,为什么编程中 1=2?

考虑以下代码:a=1a=a+1print(a)你写代码时候是不是也疑惑过,为什么代码中会有a=a+1,这个怎么解释?这就不是详情>>

阅读: 8
日期: 2018-08-06
2分钟编程技巧:不要在代码中使用循环

开发者盛宴来袭!7月28日51CTO首届开发者大赛决赛带来技术创新分享您应该使用像map、filter和reduce这样的函数,而不是编写for或while循环。这是个推荐做法,因为:循环使产生代码详情>>

阅读: 15
日期: 2018-08-06
Java编程——服务器设计方案之应用限流

前言在一个高并发系统中对流量的把控是非常重要的,当巨大的流量直接请求到我们的服务器上没多久就可能造成接口不可用,不处理的话甚至会造成整个应用不可用。比如最近就有个这样的需求,我作为客户端要向kafk详情>>

阅读: 7
日期: 2018-08-03
【oO】Facebook为什么使用PHP编程语言

小编为您搜罗的答案:  明白这一点能够让圈外人了解软件公司的运作,尤其是在它们变得如此强大又赚钱,制造的产品和服务进入我们生活各个角落的今天。如果你想知道为什么Facebook的外观和工作方式是现详情>>

阅读: 3
日期: 2018-08-01
未来3年程序员学哪种编程语言最好?

这个问题很简单,但回答起来可一点也不简单。不妨先说说为什么人们想知道答案。通常问哪种语言最流行,是因为想学习有职业前景的编程语言,即便是已经拥有娴熟技能的程序员。1什么决定流行指数?那么,哪种语言最详情>>

阅读: 7
日期: 2018-07-29
梦想自己开发游戏,请教除了学习必要的编程语言(c++,java),还需...

小编为您搜罗的答案:pc上没有用java做游戏的,实际上java因为效率问题也不适合用在pc(或者更准确点叫windows主机)上开发桌面软件(当然包括游戏在内),一般的单机游戏是以vc++为主,你需详情>>

阅读: 3
日期: 2018-07-28
宏编程英雄联盟瞎子r闪编程延迟多少?

小编为您搜罗的答案:这个你可以在淘宝上看看,很便宜的,很多的网友都在玩王f牌a对决啦,它是完全免费的游戏,里面有很多的明星乱斗,每个英雄都拥有自己的角色定位。如果你喜欢使用近战型肉盾英雄,那么你可以将详情>>

阅读: 10
日期: 2018-07-27
编程教父的课程UNITY3D课程是针对哪个平台做教学编程呢?W...

小编为您搜罗的答案:unity3d无论在那个平台它的制作流程、方法都是一样的,只是用的素材有所不同,这个课程我现在正在学习,非常不错。值得一看。详情>>

阅读: 18
日期: 2018-07-27
网易布局青少年编程教育引入《极客战记》并将推少儿编程学习平台

网易日前宣布获得美国CodeCombat在中国区公立学校市场和在线个人用户市场的独家代理权,并以《极客战记》的中文... 详情>>

阅读: 3
日期: 2018-07-08
用心画CG,用脚编程序的开山之作!

详情>>

阅读: 3
日期: 2018-05-16
极客战记可以学编程吗 极客战记怎么玩

极客战记可以学编程吗极客战记怎么玩时间:2018/3/2216:14:46来源:www.pc6.com作者:佚名我要评论(0)详情>>

阅读: 33
日期: 2018-04-16
极客战记能不能学编程?极客战记能学编程是真的吗?

极客战记v1.0游戏类型:即将发布游戏语言:简体中文编程烧脑益智逻辑思维趣味大小:25.30MB更新:2018-03-22极客战记能不能学编程?这个游戏是网易推出的一详情>>

阅读: 54
日期: 2018-03-27
精彩推荐