redis 在现实世界的 5 个用法 -凯发k8国际

11顶
0踩

redis 在现实世界的 5 个用法

2018-04-11 11:19 by 副主编 jihong10102006 评论(3) 有79542人浏览
redis是一个强大的内存数据结构存储,包含数据库,缓存和消息代理等多种用途。大多数人经常认为它不过是一个简单的键值存储,但其实它有更多的能力。下面我将会总结一些redis可以做的事情的真实例子。

1.全页面缓存

首先是整页缓存。如果你正在使用服务器端呈现的内容,则不需要为每个单独的请求重新渲染每个页面。使用如redis这样的缓存,你可以缓存经常请求的内容,从而大大减少请求最多的页面的延迟,并且大多数框架针对redis缓存页面都有hooks。
简单命令
/ set the page that will last 1 minuteset key "..." ex 60// get the pageget key

2.排行榜

redis令人耀眼的地方之一就是排行榜。由于redis在内存中,因此可以非常快速和高效地处理递增和递减。将此与每个请求运行sql查询比较,性能收益巨大!这与redis的排序集相结合意味着你可以以毫秒为单位抓取列表中评分最高的项目,而且实现起来非常容易。
简单命令
// add an item to the sorted setzadd sortedset 1 "one"// get all items from the sorted setzrange sortedset 0 -1// get all items from the sorted set with their score
zrange sortedset 0 -1 withscores

3.会话session存储

我所见的redis最常见的用途是会话存储。与其他会话存储(如memcache)不同,redis可以保留数据,以便在缓存停止的情况下,在重新启动时,所有数据仍然存在。即便不是需要严格持续的任务,此功能仍可以为你的用户省去大量的麻烦。没有人会乐于见到他们的会话被无缘无故随机删掉。
简单命令
// set session that will last 1 minuteset randomhash "{userid}" ex 60// get useridget randomhash

4.队列

使用redis可以做的一个不太常见,但非常有用的事情是排队。无论是电子邮件队列还是其他应用程序使用的数据,你都可以在redis中创建一个高效的队列。任何熟悉堆栈以及会push和pop项目的开发人员都可以轻松自然地使用此功能。
简单命令
// add a message
hset messages  zadd due  // recieving message
zrangebyscore due -inf  limit 0 1
hget messages // delete  message
zrem due hdel messages 

5.pub/sub

redis在真实世界的最终用法即我将在这篇文章中提出的pub / sub。这是redis内置的最强大的功能之一;得到的可能是无限的。你可以创建一个实时聊天系统,在社交网络上触发好友请求的通知等等。这个功能是redis提供的最被低估的功能之一,但功能非常强大,而且使用简单。
简单命令
// add a message to a channelpublish channel message// recieve messages from a channelsubscribe channel

结论

我希望你会喜欢这些redis在真实世界的使用。虽然这篇文章只抓住了redis能为你做的事情的表面,但是我希望你能从中获得应如何充分利用redis的启发。
  • 大小: 14.4 kb
来自:
11
0
评论 共 3 条 请登录后发表评论
3 楼 hongyabing 2018-05-02 15:25
2 楼 andy54321 2018-04-13 14:48
redis很强大。
尤其是结合 redis sentinel 和 3.x后支持 的 redis cluster。
1 楼 masuweng 2018-04-12 15:03
  

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • redis是一个强大的内存数据结构存储,包含数据库,缓存和消息代理等多种用途。大多数人经常认为它不过是一个简单的键值存储,但其实它有更多的能力。下面我将会总结一些redis可以做的事情的真实例子。  1.全页面...

  • redis是一个强大的内存数据结构存储,包含数据库,缓存和消息代理等多种用途。大多数人经常认为它不过是一个简单的键值存储,但其实它有更多的能力。下面我将会总结一些redis可以做的事情的真实例子。 1.全页面缓存 ...

  • redis是一个强大的内存数据结构存储,包含数据库,缓存和消息代理等多种用途。大多数人经常认为它不过是一个简单的键值存储,但其实它有更多的能力。下面将会总结一些redis...

  • redis学习 nosql历史发展 单机 mysql 的美好时代 场景:网站访问量、数据量不大 瓶颈:无法解决数据量大,数据b树...在90年代,一个网站的访问量一般都不大,用单个数据库完全可以轻松应付。在那个时候,更多的都是静

  • 在 node.js 中操作 redis

  • redis 本文使用的为redis6.2.6版本 ...redis(remote dictionary server ),即远程字典服务,是一个开源的使用ansi c语言编写、支持网络、可基于内存亦可持久化的日志型、key-value数据库,并提供多种语言

  • 之前,我已在本系列中讨论过 nosql 的概念,也介绍了一些与 java 平台兼容的 nosql 数据存储,其中包括 google 的 bigtable 和 amazon 的 simpledb。此外,我还讨论过较为常见的基于服务器的数据存储,比如 mongodb ...

  • redis 是当前互联网世界最为流行的 nosql(not only sql)数据库。nosql 在互联网系统中的作用很大,因为它可以在很大程度上提高互联网系统的性能。 redis 具备一定持久层的功能,也可以作为一种缓存工具。对于 ...

  • redis streams roshan kumar是redis labs的高级产品经理。 redis streams是redis... 在本文中,我将解释如何在redis streams中使用使用者组。 消费者组是一种在多个客户端之间分配消息流以加快处理速度或减轻较慢...

  • 本文翻译自building a reactive architecture around redis[1],如果觉得本文对你有所帮助,不妨点个赞支持一下redis 是我遇到过的最强大、最通...

  • redis @author:hanguixian ...五 redis的持久化 凯发k8国际娱乐官网入口官网介绍:...rdb是redis数据的一个非常紧凑的单文件时间点表示。rdb文件非常适合备份。例如,您可能希望在最近24小时内每小时归档您的rdb文件,并...

  • 我们使用 redis 7.0.0,直接通过源码构建dragonfly 使用的则是构建自 https://github.com/dragonfly/dragonfly#building-from-source 的 6 月 3 日版源码(hash=e806e6ccd8c79e002f721a1a5ecb847bd7a06489)验证 ...

  • 文章目录一、关系数据库与非关系型数据库1、关系型数据库2、非关系型数据库二、 redis 简介1、redis的应用场景2、redis的优点三、redis 安装部署1、安装redis2、配置参数四、redis 命令工具1. redis-cli 命令行工具...

  • 不难发现,分布式锁比进程内本地锁要复杂得多,也重得多(本地锁操作是纳秒级别,分布式锁操作是毫秒级别),现实中,在使用分布式锁之前我们要思考下有没有其它更优方案,比如乐观锁、lua脚本等。//给用户增加积分...

  • 后端需要知道的关于redis的事,基本都在这里了。 此文后续会改为粉丝可见,所以喜欢的请提前关注。 你的点赞和评论是我创作的最大动力,谢谢。 《三天给你聊清楚redis》第1天先唠唠redis是个啥(18629字) ...

  • 管理系统是一种通过计算机技术实现的用于组织、监控和控制各种活动的软件系统。这些系统通常被设计用来提高效率、减少错误、加强安全性,同时提供数据和信息支持。以下是一些常见类型的管理系统: 学校管理系统: 用于学校或教育机构的学生信息、教职员工信息、课程管理、成绩记录、考勤管理等。学校管理系统帮助提高学校的组织效率和信息管理水平。 人力资源管理系统(hrm): 用于处理组织内的人事信息,包括员工招聘、培训记录、薪资管理、绩效评估等。hrm系统有助于企业更有效地管理人力资源,提高员工的工作效率和满意度。 库存管理系统: 用于追踪和管理商品或原材料的库存。这种系统可以帮助企业避免库存过剩或不足的问题,提高供应链的效率。 客户关系管理系统(crm): 用于管理与客户之间的关系,包括客户信息、沟通记录、销售机会跟踪等。crm系统有助于企业更好地理解客户需求,提高客户满意度和保留率。 医院管理系统: 用于管理医院或医疗机构的患者信息、医生排班、药品库存等。这种系统可以提高医疗服务的质量和效率。 财务管理系统: 用于记录和管理组织的财务信息,包括会计凭证、财务报表、预算管理等。财务管理系统

  • gb2312字符集 作用:国家简体中文字符集,兼容ascii。 位数:使用2个字节表示,能表示7445个符号,包括6763个汉字,几乎覆盖所有高频率汉字。 范围:高字节从a1到f7, 低字节从a1到fe。将高字节和低字节分别加上0xa0即可得到编码。 gbk字符集 作用:它是gb2312的扩展,加入对繁体字的支持,兼容gb2312。 位数:使用2个字节表示,可表示21886个字符。 范围:高字节从81到fe,低字节从40到fe。 gb18030字符集 作用:它解决了中文、日文、朝鲜语等的编码,兼容gbk。 位数:它采用变字节表示(1 ascii,2,4字节)。可表示27484个文字。 范围:1字节从00到7f; 2字节高字节从81到fe,低字节从40到7e和80到fe;4字节第一三字节从81到fe,第二四字节从30到39。

  • 毕业设计,安卓app,基于java开发的学生成绩课件管理系统app,包括pc端和安卓anroid手机app,内含java完整源码 安卓andriod学生成绩课件管理系统 系统开发环境: windows myclipse(服务器端) eclipse(手机客户端) mysql数据库 服务器也可以用eclipse或者idea等工具,客户端也可以采用android studio工具! 系统客户端和服务器端架构技术: 界面层,业务逻辑层,数据层3层分离技术,mvc设计思想! 服务器和客户端数据通信格式:json格式,采用servlet方式 【服务器端采用ssh框架,请自己启动tomcat服务器,hibernate会自动生成数据库表的哈!】 hibernate生成数据库表后,只需要在admin管理员表中加个测试账号密码就可以登录后台了哈! 下面是数据库的字段说明: 班级: 班级编号,班级名称,开办日期,班主任 学生: 学号,登录密码,所在班级,姓名,性别,出生日期,学生照片,联系电话,家庭地址 老师: 教师编号,登录密码,姓名,性别,出生日期,联系电话,邮件,地址,

global site tag (gtag.js) - google analytics
网站地图