键值数据库的设计原则是以提高数据处理速度为目标,适合存在大量写操作的应用需求,擅长处理数组类型的数据。键值数据库运行在内存(它以内存或SSD为数据运行存储的主环境),采用定期向硬盘写数据的持久化策略,因此,键值数据库常被称为内存数据库。数据存储结构只有键(Key)和值(Value),并成对出现。在Value中可以保存任何类型的数据,通过Key来存储和检索具体的Value。键值数据库的优点是数据结构简单、提供分布式处理能力、高速计算和快速响应,只要配置更大容量、更快速度的内存就可以轻松应对海量数据访问的速度问题。缺点是无法存储结构化信息、在发生故障时不支持回滚操作,因此无法支持事务,不容易建立数据集之间复杂的横向关系,只限于两个数据集之间的有限计算。此外,对值进行多值查询的功能较弱。
键值数据库产品有Redis、Memcached、Riak、BerkeleyDB、SimpleDB、DynamoDB以及甲骨文的Oracle NoSQL数据库等。作为键值数据库代表之一的Redis,使用C语言开发,提供了100多条命令,这些命令要比SQL语言简单很多。Redis支持的键值数据类型只有5种(字符串类型、散列类型、列表类型、集合类型、有序集合类型),并提供了几十种不同编程语言的客户端库,这使得在程序中与Redis的交互变得轻松容易。此外,Redis数据库中的所有数据都存储在内存中,并提供了持久化支持,将内存中的数据异步写入硬盘中,避免了程序退出而导致内存中数据丢失的问题。目前,Redis得到越来越多公司的青睐,百度、新浪微博、京东、阿里巴巴、腾讯、美团网、Twitter、Flickr、Stack Overflow、GitHub(Redis的开源代码就托管在其上)等都是Redis的用户。
资料来源:《数据库与数据处理:Access 2010 实现 第2版》,文章链接:https://developer.aliyun.com/article/726515
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。