Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理,它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区。
简言之,Redis是一种面向“键/值”对数据类型的内存数据库,可以满足我们对海量数据的快速读写需求。
Redis中的字符串被称为简单动态字符串「SDS」,这种结构很像Java中的ArrayList,其长度是动态可变的.
String是Redis中最基本的数据类型,一个key对应一个value
String类型的value是基于二进制存储的,所以完全可以存储图片和影音等二进制数据
key的大小最大512mb
struct SDS<T> {
T capacity; // 数组容量
T len; // 数组长度
byte[] content; // 数组内容
}
content[] 存储的是字符串的内容,capacity表示数组分配的长度,len表示字符串的实际长度。
Hash 是一个键值对集合。Hash是一个string类型的field和value的映射表,Hash特别适合用于存储对象object
Redis的Hash与普通的有所不同,它可以使你像在数据库中Update一个属性一样只修改某一项属性值。
例如:
它可以 已key: 1和 name 为key取value:张三。
随着JavaScript项目的成长,如果你不小心处理的话,他们往往会变得难以管理。我们发现自己常常陷入的一些问题: 当在创建新的页面时发现,很难重用或测试之前写的代码。当我们更深处地研究这些问题
当一个集合中只包含整数,并且元素的个数不是很多的话,redis 会用整数集合作为底层存储,它的一个优点就是可以节省很多内存,虽然字典结构的效率很高,但是它的实现结构相对复杂并且会分配较多的内存空间
在 JavaScript 中数据结构通常总是被忽略,或者接触得不多。但是对于许多大厂而言,一般都需要你深刻了解如何管理数据。掌握数据结构也能够在解决问题时为你的工作提供帮助。
使用TypeScript编写Vue项目也已经有了一段时间,笔者在刚刚使用TypeScript时候也是很茫然,不知道从何下手,感觉使用TypeScript写项目感觉很累赘并不像JavaScript那么灵活,因为TypeScript对于代码限制太多
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!