Redis是否可以存图片、视频?

  • 2019 年 10 月 6 日
  • 笔记

一、Redis是否可以用于存储图片、视频?

前几天看到某大型家电工厂的工业互联网系统架构图,发现用MongoDB存储图片及视频。那Redis同样也是Json类型的远程数据字典服务器,也可以用于存储图片、视频。实际Redis可以用512MB的空间存储用于存储字符串型的数据。

虽然技术上可以这么做,但Redis原本就是内存型数据库,用于存储图片、视频是非常不划算的。建议多利用HDFS、NAS、对象存储等分布式的云存储系统。

二、Redis如何存储真实对象的名称?

我一直有个好奇,Redis采用key区分不同的数据,面临复杂的网页、程序,如何进行数据的编号。

Redis有默认的数据编码规则。

user:1:friend user是class名,1是对象名,friend是对象的属性。通过该方式,向Redis中存放、读取数据,将使key具有可读性。

三、Redis是否支持主从复制、数据分片?

像MongoDB一样,后起之秀,一般对复制、分片是原生支持,比起Mysql等关系数据库系统的复杂配置,Redis已经可以原生支持这两个功能,而且配置非常简单。

像下图,A数据的数据自动同步到B、C,向B写入的数据自动同步到D、E。我们可以在A数据库中实现写操作,在B、C数据库进行读操作。

为提高效率,在B、C中启动持久化数据存储,而在A仍使用内存数据库。当主用服务器A down机后,自动从B、C中恢复数据。

四、对主、备数据库的自动切换,Redis支持能力如何?

在典型的一主多从的Redis系统中,当主用数据库异常中断后,只能由集成商通过手工切换数据源的方式将从数据库升级为主数据库,但过程复杂,难以实现自动化。

而Redis哨兵功能将自动检查各主备数据库的运行状态,当主用死机时,将自动升级备机1为主用机,并将原备机2升级为备机1。client程序将通过zookeeper等方式切换数据源,实现自动切换。