Redis为什么可以存储对象(为什么redis能存对象)
Redis最初是一个通用的键值对缓存,在存储和访问数据时,它可以智能化地处理原始数据,如字符串,整数,浮点数,布尔值等,Redis可以提供更高级的数据结构,如哈希(hash),列表(list),有序集合(sorted set)等。它也可以存储复杂的对象,像字典,对象,类似JSON对象的数据。这种存储方式是可能的,其中Redis使用数据结构序列化(DSS),同时支持PHP、JavaScript、Python、C#等多种语言。
DSS允许Redis将每一个变量转换成类似字符串的序列,因此您可以将复杂的对象存储到Redis中,同时也可以使用DSS将复杂的对象存储到关系数据库中。但是,使用DSS存储对象具有一定的缺点,比如存储了复杂的对象后,就无法从Redis库中查询所有字段,不能检索数据,要想执行这种操作,需要使用复杂的运算算法实现。
为了更好地支持复杂的数据结构,Redis团队开发了一个新功能,也就是新的module system,使用module system,开发者可以让Redis支持更复杂的数据结构,比如对象、属性、图、网络,这些存储的形式是与Redis原始的字符串不同的。
另一方面,许多开发者利用Redis可以缓存对象,Redis可以缓存任何非常规对象,包括文件夹和图片。这样可以让你在数据库中存储这些数据,而不用每次查询数据库。
Redis在它的module system和DSS功能上,都使得它可以容纳复杂的数据结构,甚至可以存储对象。也因为这些功能,Redis被认为是一个拥有超强缓存处理能力的缓存程序。