Redis 的 5 个常见使用场景

摘要:
与其他存储(如Memcached)相比,使用Redis缓存会话的优势在于,很容易找到如何正确使用Redis来缓存会话文档。甚至知名的商业平台Magento也提供了Redis插件。2.除了基本会话令牌外,用户不会看到页面加载速度下降。Magento提供了一个插件,可以使用Redis作为整个页面缓存的后端。这个插件可以帮助您尽快加载浏览过的页面。

在这篇文章中,我们将阐述 Redis 最常用的使用场景,以及那些影响我们选择的不同特性。

1、会话缓存(Session Cache)

最常用的一种使用Redis的情景是会话缓存(session cache)。用Redis缓存会话比其他存储(如Memcached)的优势在于:Redis提供持久化。当维护一个不是严格要求一致性的缓存时,如果用户的购物车信息全部丢失,大部分人都会不高兴的,现在,他们还会这样吗?

幸运的是,随着 Redis 这些年的改进,很容易找到怎么恰当的使用Redis来缓存会话的文档。甚至广为人知的商业平台Magento也提供Redis的插件。

2、全页缓存(FPC)

除基本的会话token之外,Redis还提供很简便的FPC平台。回到一致性问题,即使重启了Redis实例,因为有磁盘的持久化,用户也不会看到页面加载速度的下降,这是一个极大改进,类似PHP本地FPC。

再次以Magento为例,Magento提供一个插件来使用Redis作为全页缓存后端

此外,对WordPress的用户来说,Pantheon有一个非常好的插件  wp-redis,这个插件能帮助你以最快速度加载你曾浏览过的页面。

3、队列

Reids在内存存储引擎领域的一大优点是提供 list 和 set 操作,这使得Redis能作为一个很好的消息队列平台来使用。Redis作为队列使用的操作,就类似于本地程序语言(如Python)对 list 的 push/pop 操作。

如果你快速的在Google中搜索“Redis queues”,你马上就能找到大量的开源项目,这些项目的目的就是利用Redis创建非常好的后端工具,以满足各种队列需求。例如,Celery有一个后台就是使用Redis作为broker,你可以从这里去查看。

排行榜/计数器

Redis在内存中对数字进行递增或递减的操作实现的非常好。集合(Set)和有序集合(Sorted Set)也使得我们在执行这些操作的时候变的非常简单,Redis只是正好提供了这两种数据结构。所以,我们要从排序集合中获取到排名最靠前的10个用户–我们称之为“user_scores”,我们只需要像下面一样执行即可:

当然,这是假定你是根据你用户的分数做递增的排序。如果你想返回用户及用户的分数,你需要这样执行:

ZRANGE user_scores 0 10 WITHSCORES

Agora Games就是一个很好的例子,用Ruby实现的,它的排行榜就是使用Redis来存储数据的,你可以在这里看到。

5、发布/订阅

最后(但肯定不是最不重要的)是Redis的发布/订阅功能。发布/订阅的使用场景确实非常多。我已看见人们在社交网络连接中使用,还可作为基于发布/订阅的脚本触发器,甚至用Redis的发布/订阅功能来建立聊天系统!(不,这是真的,你可以去核实)。

Redis提供的所有特性中,我感觉这个是喜欢的人最少的一个,虽然它为用户提供如果此多功能。

来源:http://blog.jobbole.com/88383/

免责声明:文章转载自《Redis 的 5 个常见使用场景》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ThreeJS 实例笔记vc6.0 调用ocx控件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Restful API 设计参考原则

在项目中,需要为后台服务撰写API。刚开始接触的时候,并没有考虑太多,就想提供URL,服务端通过该URL进行查询、创建、更新等操作即可。但再对相关规范进行了解后,才发现,API的设计并没有那么简单,远远不是URL的问题,而是一个通信协议的整体架构 1. 使用GET、POST、PUT、DELETE这几种请求模式 请求模式也可以说是动作、数据传输方式,通常我们...

Nacos 认证绕过

Nacos 介绍 Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。 漏洞成因: 1、未授权访问接口...

Win2012R2(英文版)新增用户设置流程

场景:新建用户,和其他用户进行VPS隔离, 处理步骤: 1.登录管理员Administrator,按 Win+R调出命令框,输入命令: lusrmgr.msc ;  2.选择New User  3.输入要创建的用户名及密码,密码尽量复杂一些,不然无法创建; 取消 User must change password at next logon 勾选 Us...

CentOS8 几个关机重启的命令

shutdown 是安全的方式关闭系统。 shutdown -k  +5                      并非真正关机,只是向用户发出警告信息“离关机还有五分钟” shutdown -k                           向用户发出警告信息“离关机还有一分钟”,默认延时一分钟。 shutdown -h           ...

GitLab 后台修改用户密码

GitLab 后台修改用户密码 # 打开控制台 gitlab-rails console production # 找到用户,输入密码,确认密码,保存 user = User.find_by(username: 'zhangsan') user.password = '12345678' user.password_confirmation = '123...

vs2010(vs2012)好用的扩展插件介绍

  一直以来只使用番茄vs助手(https://www.wholetomato.com/downloads/default.asp)辅助写代码,也都忘了是谁介绍的,不过确实好用。 相比原始的vs,它提供了很多改进功能。例如,重命名变量,高亮宏与自定义类型,查找引用,智能代码提示等。   因为一直以来用着没有觉得不爽的地方,所以对于vs的其它插件都没做研究。...