1Redis是什么
Redis是一个开源的,使用ANSI C 编写,高性能的Key-Value的NoSQL数据库。
2Redis特点
(1)基于内存
(2)可持久化数据
(3)具有丰富的数据结构类型,适应非关系型数据的存储需求
(4)支持绝大多数主流开发语言,如C、C++、Java、Python、R、JavaScript等。
(5)支持集群模式,高效、稳定。
3数据模型(重点)
(1)键值对形式。
(2)Redis的数据结构类型,指的就是Redis值的结构类型。
4Redis作用
(1)本质是数据库,能存储数据。
Redis能灵活处理非关系型数据的读、写问题,是对MySQL等关系型数据库的补充。
新浪微博就是使用Redis集群做数据库。
(2)缓存数据。
所谓缓存,就是将数据加载到内存中后直接使用,而不是每次都通过IO流从磁盘上读取。好处:读写效率高。
而Redis则是将数据直接存储在内存中,只有当内存空间不足时,将部分数据持久化到磁盘上。
5Redis的值value(数据结构类型)
Redis的数据结构类型,指的就是redis的值value的类型;
Redis常用的数据结构类型:string、list、set、sortedSet、hash
5.1List类型特点
(1)、基于Linked List实现
(2)、元素是字符串类型
(3)、列表头尾增删快,中间增删慢,增删元素是常态
(4)、元素可以重复出现
(5)、最多包含2^32-1元素
List类型应用场景
(1)处理排名类业务。如新浪微博评论、论坛回帖楼层等。
(2)聊天室
5.2Hash类型特点
(1)由Field和与之关联的value组成map键值对
(2)field和value是字符串类型;
(3)一个hash中最多包含2^32-1键值对。
redis每创建一个键,都会为这个键储存一些附加的管理信息(比如这个键的类型,这个键最后一次被访问的时间等等)redis的key相对于值来说,更珍贵!!!所以数据库里面的键越多,redis数据库服务器在储存附加管理信息方面耗费的内存就越多,在获取key对应的value值时cpu的开销也会更多 Hash结构可以将具有关联关系的一组key-value,存储到同一个hash结构中,从而减少key的数量。
5.3Set类型(集合)
(1)无序的、去重的;
(2)元素是字符串类型;
(3)最多包含2^32-1元素。
5.4SortedSet类型
(1)类似Set集合;
(2)有序的、去重的;
(3)元素是字符串类型;
(4)每一个元素都关联着一个浮点数分值(Score),并按照分值从小到大的顺序排列集合中的元素。分值可以相同
(5)最多包含2^32-1元素