一.前言
结构化数据库的特点在于,需要事先严格定义好字段名,字段类型,长度,缺省值,取值范围,约束条件等,而且必须保证所有记录的所有字段都严格按结构设计来保存数据,否则不允许保存。关系型数据库在入库前进行了大量的检查和处理工作,如 SQL Server, Oracle, MySQL, PostgerSQL。
半结构化数据库则没有这些限制,可以较灵活地保存数据,入库时数据库本身不做严格检查,而是到客户端应用程序使用时,再检查数据的正确性和可用性,这样可极大提高数据的读写性能,如 MongoDB, Hbase ,Redis。
非结构化数据无明显的数据库结构可言,可作为一个整体数据进行保存,如文档,图像,音视频等。
Redis数据库是一个键值对数据库,提供了5种基本数据类型 (String, List, Hash, Set, ZSet),利用键名对数据内容进行保存和读取。Redis的业务处理逻辑,包含在键值的设计中,一般是利用实际的业务数据,动态拼装键名,来进行相关数据的保存和读取。因此客户端应用程序需要有一个统一的键值设计方案,才能有效实现相应的业务逻辑。
二.键名设计规则
本文提供了一种对Redis键名(没有包含值类型的设计)进行结构化设计的方案。键名的长度:可达512M, 但键名越长,越占资源,需要权衡
以下提供的命名项目,中间用冒号(:)分隔,其中(2,3,4,6)项是基本的,其他项目可以根据需要进行取舍使用。
序号 |
条目 |
说明 |
举例 |
1 |
实体族 |
也可理解为命令空间,Schema等 |
sys |
2 |
实体名 |
表名,包括系统表 |
user |
3 |
查询字段名 |
查找字段,或用于定位相关业务信息 缺省字段可以省略不写,如主键字段 |
userid |