(1)会话缓存(SessionCache)
会话缓存是使用Redis的最常用方案之一。使用Redis在其他存储(例如Memcached)上缓存会话的优点是Redis提供了持久性。当维护一个不严格要求一致性的缓存时,如果所有用户的购物车信息丢失,大多数人将不满意。现在,他们还会这样吗?
幸运的是,随着Redis多年来的改进,很容易找到如何正确使用Redis缓存会话文档的方法。甚至著名的商业平台Magento都为Redis提供了插件。
(2)全页缓存(FPC)
除了基本的会话令牌外,Redis还提供了一个非常简单的FPC平台。回到一致性问题,即使重新启动Redis实例,由于磁盘的持久性,用户也不会看到页面加载速度的下降。与PHP本地FPC相似,这是一个很大的改进。
再次以Magento为例,Magento提供了一个插件来使用Redis作为全页缓存后端。
此外,对于WordPress用户而言,万神殿有一个非常不错的插件wpredis,它可以帮助您尽快加载已浏览的页面。
(3)队列
Reids在内存存储引擎领域的主要优势之一是提供列表和设置操作,这使Redis成为一个很好的消息排队平台。Redis用作队列的操作类似于列表上本地编程语言(例如Python)的push/pop操作。
如果您在Google中快速搜索“重生”,则可以立即找到大量开源项目。这些项目的目的是使用Redis创建非常好的后端工具来满足各种队列需求。例如,Celery有一个使用Redis作为代理的后端,您可以从此处进行检查。
(4)排行榜/计数器
Redis在内存中对数字进行递增或递减的操作实现的非常好。集合(Set)和有序集合(SortedSet)也使得我们在执行这些操作的时候变的非常简单,Redis只是正好提供了这
两种数据结构。所以,我们要从排序集合中获取到排名最靠前的10个用户-我们称之为“user_scores",我们只需要像下面一样执行即可:
当然,这是假定你是根据你用户的分数做递增的排序。如果你想返回用户及用户的分数,你需要这样执行:
ZRANGEuserscores010WITHSCORES
AgoraGames就是一个很好的例子,用Ruby实现的,它的排行榜就是使用Redis来存储数据的,你可以在这里看到。
(5)发布/订阅
最后(但肯定不是最不重要的)是Redis的发布/订阅功能。发布/订阅的使用场景确实非常多。我已看见人们在社交网络连接中使用,还可作为基于发布/订阅的脚本触发器,甚至用Redis的发布/订阅功能来建立聊天系统!
推荐阅读:java架构师培训:java最佳测试框架JBehave的基本介绍
如果你想了解更多关于java架构师的专业知识,可以加入JAVA架构师交流群:1160405674,里面都是同行,有资源分享包括但不限于(分布式架构、高可扩展、高性能、高并 发、Jvm性能调优、Spring,MyBatis,Nginx源码分析,Redis,ActiveMQ、Mycat、Netty、Kafka、Mysql 、Zookeeper、Tomcat、Docker、Dubbo、Nginx)。欢迎一到五年的工程师加入,合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!