缓存,数据库

前些时间看到一小段写缓存的东西。缓存redis,couchbase 这些已经成熟的缓存。
我这里叙述一下自己的缓存架构的理解。数据库,数据的放在磁盘的,从而导致获取数据的速度变慢了。我们从电脑的硬件层级来理解,cpu,内存,磁盘。
很自然的,我们如果想要获得更快的速度,采用的是将数据保存的内存中。这样的才操作速度,自然而然的变得很快了。
1.我们可以假设我们创建了一个map的对象,key ---- value。这就是单个功能,单功能的缓存,当然这种缓存比较low。但是它还是可以满足我们的一些要求的。
2.层级高一点,我们可以将这个功能单独出来,你可以假设他就是一个微服务啊。
从抽象层级出发。我们可以将这个map的功能单独出来,这样他不再只是为一个功能块服务了。而这一种独立,无非建立通信服务。
3.因为第二点,因为有了通信,自然而然有相关数据的通信协议,数据的格式。
数据存档的类似概念。
4.引起1,,我们很明显的可以想到一些本地可以实现的方式来估算,独立微服务的缓存的对应功能。
比如设置一个数据保存的时间。单机模式,数据+截止时间,自然可以保证了这个功能了。
再比如set 这种数据模式,无非是set这种数据接口来得到了。
还有如果是想模糊查询,返回多个数据。类似的其实都是可以扩展的。
5.再扩展,集群的概念,单独的一个缓存服务器,性能上肯定有自己的瓶颈。多个类似功能的服务搭建起来,来一起工作。

从而单机的缓存,独立出来,微服务的缓存,然后集群的缓存过程。从这个过程,很明显我们类比数据库的,数据库的一个模式,无非一个是利用磁盘,一个是内存。
我觉得所谓程序尽可能结合硬件基础去理解他的一个设计的概念,它为什么单独化,它提供的功能。
类比的,MQ,如果他是单机的时候和程序一起的时候,该怎么样的,从low的版本,慢慢独立出来。自然就可以猜想他的更多功能。

猜你喜欢

转载自blog.csdn.net/yinghonghui/article/details/82926218
今日推荐