首页 > 知识点讲解
       Redis
知识路径: > 数据库技术 > 数据库技术基础 > 数据库模型 > 典型数据库:RDB(关系数据库)、OODB(面向对象数据库)、ORDB(对象关系数据库)、XML数据库、NoSQL(非关系数据库) > 非关系型数据库NoSQL > NoSQL数据库的种类 > 键值存储 > 键值存储产品 > 
被考次数:1次     被考频率:低频率     总体答错率:48%     知识难度系数:     
相关知识点:2个      
        Redis是一种主要基于内存存储和运行,能够快速响应的键值数据库,属于临时和永久兼具类型,有点像Memcached,整个数据库统统加载在内存当中进行操作,但是通过定期异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过10万次读写操作。
        Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存List链表和Set集合的数据结构,而且还支持对List进行各种操作。此外单个value的最大限制是1GB,不像Memcached只能保存1MB的数据。其主要缺点是数据库容易受到物理内存的限制,不能用作海量数据的高性能读写,并且它没有原生的可扩展机制,不具有扩展能力,要依赖客户端来实现分布式读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上。
        将传统关系型数据库、MongoDB和Redis的特点做一个简单对比。如下表所示,读写响应性能上,传统关系型数据库一般,MongoDB类似于磁盘读写的NoSQL数据库速度较快,基于内存存储的Redis数据库最快。但是传统关系型数据库应用范围广泛,后两者以互联网应用为主。在当前互联网环境下,许多大型网站需要这种处理高并发和高响应的内存数据应用。
        
        传统关系型数据库和MongoDB、Redis的比较
        Redis的数据库存储模式,是基于键值(Key-Value)基本存储原理,进行细化分类,构建了具有自身特点的数据结构类型。像MySQL这样的关系型数据库,表的结构比较复杂,会包含很多字段,可以通过SQL语句,来实现非常复杂的查询需求。而Redis客户只包含“键”和“值”两部分,只能通过“键”来查询“值”。正是因为这样简单的存储结构,也让Redis的读写效率非常高。键的数据类型是字符串,但是为了丰富数据存储的方式,方便开发者使用,值的数据类型很多,它们分别是字符串、列表、字典、集合、有序集合。在对数据进行各种命令操作之前,首先要掌握Redis的数据结构类型特点。
        字符串是Redis数据库最简单的数据结构,形式如下表所示,字符串值的内容是二进制的,意味着可以把数字、文本、图片、视频等都赋给这个值,最大长度不能超过512MB。键名的命名要容易阅读,方便系统维护;键名不要太长,否则会影响数据库执行效率。
        
        Redis的字符串结构
        列表由若干插入顺序的字符串组成,支持存储一组数据。这种数据类型对应两种实现方法,一种是压缩列表,另一种是双向循环链表。列表中存储的数据量比较小的时候,列表就可以采用压缩列表的方式实现。压缩列表由Redis自己设计实现,类似于数组,通过一片连续的内存空间存储数据,在读写操作时只能从其两头开始(由链表的寻址方式所决定)。不过,它跟数组不同的一点是Redis允许存储的数据大小不同。如下表所示,将700010看作表头的第一个结点字符串数据,结尾是700012字符串。值的内容允许重复出现。列表可用于聊天记录、博客评论等无需调整字符串顺序但又需要快速响应的场景。
        
        Redis的列表结构
        集合是由不重复且无序的字符串元素组成的整体,结构如下表所示,集合与列表最主要的区别是,集合里面所有字符串是唯一的;所有字符串的读写顺序是任意的,不存在从两头操作的问题。
        
        Redis的集合结构
        散列表可以存储多个键值对的映射,是无序的一种数据集合。只有在数据存储数据量比较小的情况下,Redis才使用散列表进行操作,如下表所示。键的内容必须是唯一的,不能重复,且字符串不宜过长,以免占用过多内存,影响执行效率。使用“:”等隔离符号增加可读性,并给使用者提供更大的存储空间。值可以是字符串类型也可以是数字型。散列表特别适用于存储一个对象,会占更少的内存,并且方便存取整个对象。
        
        Redis的散列结构
        有序集合的键被称为成员(member),每个成员都是各不相同的。有序集合的值则被称为分值(score),分值必须为浮点数。有序集合是Redis里面唯一一个既可以根据成员访问元素,又可以根据分值以及分值的排列顺序访问元素的结构,如下表所示。有序集合的值自动进行排序,键字符串必须唯一,值可以重复。由于采用自动值排序,在数据量较多的情况下,检索速度比散列表快。
        
        Redis的有序集合结构
 
本知识点历年真题:
隶属试卷 题号/题型 题干 难度系数/错误率
   2018年上半年
   数据库系统工程..
   上午试卷 综合知识
第70题
选择题
Redis是一种NoSQL数据库,具体地说,是()存储数据库。

48%
 
 相关知识点:
 
软考在线指南
优惠劵及余额
在线支付
修改密码
下载及使用
购买流程
取消订单
联系我们
关于我们
联系我们
商务合作
旗下网站群
高级资格科目
信息系统项目管理师 系统分析师
系统架构设计师 网络规划设计师
系统规划与管理师
初级资格科目
程序员 网络管理员
信息处理技术员 信息系统运行管理员
中级资格科目
系统集成项目管理工程师 网络工程师
软件设计师 信息系统监理师
信息系统管理工程师 数据库系统工程师
多媒体应用设计师 软件评测师
嵌入式系统设计师 电子商务设计师
信息安全工程师
 

本网站所有产品设计(包括造型,颜色,图案,观感,文字,产品,内容),功能及其展示形式,均已受版权或产权保护。
任何公司及个人不得以任何方式复制部分或全部,违者将依法追究责任,特此声明。
本站部分内容来自互联网或由会员上传,版权归原作者所有。如有问题,请及时联系我们。


工作时间:9:00-20:00

客服

点击这里给我发消息 点击这里给我发消息 点击这里给我发消息

商务合作

点击这里给我发消息

客服邮箱service@rkpass.cn


京B2-20210865 | 京ICP备2020040059号-5 |京公网安备 11010502032051号 | 营业执照 | Copyright ©2000-2023 All Rights Reserved 软考在线版权所有