什么业务场景适合使用Redis?
Redis(Remote Dictionary Server),即Remotely Manageable and Accessible Dictionaries Service(RMADS),是一个基于ANSI C语言、开源、可扩展的日志型Key-Value数据库系统。该系统支持网络化运行,并可在内存中运行或持久化存储数据。它提供了多种编程语言接口(API)。自2010年3月15日起,该软件项目的开发工作由VMware公司负责;而自2013年5月起,则由Pivotal公司提供赞助支持该项目的发展

那么在什么业务场景适合使用Redis?来看看下面的详细介绍:
(1)会话缓存(Session Cache)
主要应用之一是用于实现网站或应用程序中的 session 机制(session cache)。相较于其他存储方案(如 Memcached),采用 Redis 进行会话缓存的主要优势在于其支持持久化存储。在非严格一致性需求的应用场景下,在线用户的数据可能不会完全同步更新的情况下,“若用户的购物车数据全部丢失,则大多数用户可能会感到不满。”
庆幸的是,在经过冗长的时间和持续的努力后(或者:经过冗长的时间和持续的努力),Redis已经取得了显著的进步。相对而言(或:相比之下),找到使用Redis缓存会话的方法变得相对容易。此外(或:此外),广为人知的商业平台Magento也提供了针对Redis的一个插件。
庆幸的是,在经过冗长的时间和持续的努力后(或者:经过冗长的时间和持续的努力),Redis已经取得了显著的进步。相对而言(或者:相比之下),找到使用Redis缓存会话的方法变得相对容易。此外(或者:此外),广为人知的商业平台Magento也提供了针对Redis的一个插件。
(2)全页缓存(FPC)
除了基础会话token外, Redis还提供了非常便捷的一键式缓存管理功能.当关注一致性问题时,即使Redis实例发生重启,由于磁盘存储数据的一致性和持久性,用户也不会感知到页面加载速度的变化.这代表了一个显著的进步,类似于PHP本地环境下的FPC机制.
以Magento为例,在该系统中提供了支持插件功能来实现 Redis 作为全页缓存后端的功能。
此外,在 WordPress 用户中,Pantheon 提供了一个非常优秀的插件名为 wp Redis。这个插件能够让你以最快的速度加载之前访问过的页面。
(3)队列
Reids在内存存储引擎领域具有一-大突出特点是可以支持list和set操作, 因此它能够作为一个很好的消息队列平台来使用. Redis在队列功能上的入栈/出栈操作等同于本地程序语言(如Python)中的push/pop操作.
如果你迅速地在Google中搜索‘Redis queues’,你立刻就能找到很多开源项目;这些项目的共同目标就是利用Redis创建高性能的后端工具以满足各种队列需求。例如,在Celery系统中有一个后台服务专门充当broker角色,你可以访问该服务获取更多信息.
(4)排行榜/计数器
Redis 在内存中 对数字进行 递增或递减的操作 表现得非常出色。Set 和 Sorted Set 这两种数据结构 则大大简化了我们的操作流程 正是由于 Redis 提供了这一功能
我们可以使用两个不同的数据结构来实现某种功能。因此,在处理排序集合时,请注意提取排名最靠前的10个用户-我们称之为'user_scores' -并将其作为核心变量进行后续操作。为此,请参考以下步骤进行处理:
当然,在假定按照用户的分数进行排序的情况下,如果你需要返回给用户以及他们的分数,则应执行以下操作。
ZRANGE user scores 0 10 WITHSCORES
这是一个值得借鉴的例子。Agora Games是基于Ruby开发的一个优秀案例;其排行榜系统采用Redis作为数据存储方案。你可以在此处查看。
(5)发布/订阅
虽然 Redis 的发布/订阅功能并非最为关键的技术点(但也不可小觑),然而其用途仍然十分广泛)。已有大量用户在其社交网络平台中应用这一技术点来实现消息传播的功能(此外,在开发基于 Redis 的应用程序时也常将其作为核心组件之一),甚至可采用该功能来构建实时通讯平台!
