赞
踩
本系列文章基本参考付磊、张益军的《Redis开发与运维》。同时参考了网上其他的一些资料。
说到Redis的使用场景,大家想到一般都应该是缓存吧。确实,Redis执行命令的速度非常快,用作磁盘和内存之间的缓存非常合适。然而Redis的设计者最初其实是想要实现一个高性能的队列功能,然后可能连他也没有想到,Redis最后会在如此多的场景下都收到强烈追捧。
想要理解Redis在不同场景下的使用,我们必须要先了解Redis本身的特性,已经Redis可以做什么,不能做什么。本篇文章就大概总结一下这两个问题。
前面说过,Redis执行命令的速度非常快,官方给出的数据是读速度能到达11W/秒,写也能达到8.1W/秒。不考虑机器性能差异的情况下,Redis能达到如此快速的原因也有以下几点:
Redis是键值对数据库,同时,Redis的值并不局限于字符串,还可以是具体的数据结构,这就方便了不同的应用场景开发,大大提高了开发效率。Redis有5中基本数据结构:字符串、哈希、列表、集合、有序集合。本系列文章也主要基于这5种数据结构的应用。
简单主要表现在源码少、单线程模式、不依赖系统类库三个方面。稳定就不说了,基本没有出现过因Redis自身问题宕机的情况。
无需多言,几乎所有主流编程语言都有Redis客户端。除了Redis本身的流行,从技术角度而言还有两个原因:
提供复制功能,实现数据副本。
Sentinel哨兵保证Redis节点的故障发现和自动转移。Redis Cluster则跟一般集群一样实现真正分布式,提供高可用、读写和容量的扩展。
Redis的可以做的事情很多,下面列出常用的几种使用场景:
从技术本身的角度来说,只要能够实现我们需要的功能,那么就没有什么是不可以做的。但是技术应用则一定会有自己的应用场景和边界。Redis本身自然也有很多不适合它解决的问题,比如:
简单来说,就是从经济成本考虑,衡量效率与成本,投入产出比是我们技术选型时必须要考虑的问题。当然,投入不仅仅是经济成本,还有人力成本,如果有些问题Redis虽然也能解决,经济成本也不高,但是实现复杂,也不应该作为首选方案。
Redis本身功能丰富,是否适合我们的应用场景需要多方面衡量,当然前提是我们对Redis和场景本身都足够了解。就Redis而言,最好能够了解Redis的原理,并阅读源码,这样我们在开发和运维时,就能提前规避很多问题,甚至做出定制化开发。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。