Redis
文章平均质量分 75
Redis介绍
lliuhao--
贵在坚持
展开
-
redis数据结构的内部实现
redis的性能高的原因之一是它每种数据结构都是经过专门设计的,并都有一种或多种数据结构来支持,依赖这些灵活的数据结构,来提升读取和写入的性能。第一个层面,是从使用者的角度,这一层面也是Redis暴露给外部的调用接口,比如:string,list,hash,set,sorted set。第二个层面,是从内部实现的角度,属于更底层的实现,比如:dict,sds,ziplist,quicklist,skiplist,intset。原创 2023-07-08 15:12:03 · 251 阅读 · 0 评论 -
Redis底层数据结构
dict是一个基于哈希表的数据结构,在不要求数据有序存储,且能保持较低的哈希值冲突概率的前提下,查询的时间复杂度接近O(1)。Redis的dict实现最显著的一个特点,就在于它的重哈希。dict之所以这样设计,是为了避免重哈希期间单个请求的响应时间剧烈增加,这与前面提到的“快速响应时间”的设计原则是相符的。跳表是一种可以进行二分查找的有序链表,采用空间换时间的设计思路,跳表在原有的有序链表上面增加了多级索引(例如每两个节点就提取一个节点到上一级),通过索引来实现快速查找。这又是一个需要找平衡点的难题。原创 2023-07-08 15:06:09 · 444 阅读 · 0 评论 -
Redis基本数据类型
Set对外提供的功能与list类似是一个列表的功能,特殊之处在于Set的成员是唯一的,这就意味着集合中不能出现重复的数据。相比于 C 的原生字符串,Redis 的 SDS 不光可以保存文本数据还可以保存二进制数据,并且获取字符串长度复杂度为 O(1)(C字符串为 O(N)),除此之外,Redis 的 SDS API 是安全的,不会造成缓冲区溢出。一个存储全班同学成绩的sorted set,其集合value可以是同学的学号,而score就可以是其考试得分,这样在数据插入集合的时候,就已经进行了天然的排序。原创 2023-07-08 14:59:12 · 498 阅读 · 0 评论 -
Redis的特点
Redis的特点优点缺点Redis为什么这么快Redis应用场景优点基于内存操作,内存读写速度快。Redis是单线程的,避免线程切换开销及多线程的竞争问题。单线程是指网络请求使用一个线程来处理,即一个线程处理所有网络请求,Redis 运行时不止有一个线程,比如数据持久化的过程会另起线程。支持多种数据类型,包括String、Hash、List、Set、ZSet等。支持持久化。Redis支持RDB和AOF两种持久化机制,持久化功能可以有效地避免数据丢失问题。支持事务。Redis的所有操作都是原子性原创 2023-07-08 14:49:55 · 532 阅读 · 0 评论 -
关系型和非关系型数据库的区别
关系型数据库,是指采用了关系模型来组织数据的数据库,关系型数据库的最大特点就是事务的一致性。关系型数据天然就是表格式的,因此数据存储在数据表的行和列中。存储数据的格式比较灵活,nosql的存储格式可以使是key-value形式、文档形式、图形(graph)形式,列存储形式等等,而关系型数据库则只支持基础类型。非关系型数据库是一种数据结构化存储方法的集合,使用键值对存储数据。高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。原创 2023-07-08 14:45:46 · 1441 阅读 · 1 评论