标签:value 开源 散列类型 自动 数组 时间 windows环境 -- 知识点
Redis是REmote DIctionary Server(远程字典服务器)的缩写,以字典结构存储数据,并允许其他应用通过TCP协议读写字典中的内容。2009年Redis作者Salvatore Sanfilippo将其开源。
支持的键值数据类型有:
Redis的所有数据都存储在内存中,因此读写速度可以达到10万键值对每秒。因内存的缘故Redis提供对持久化的支持。
Redis可以为每个键设置生存时间(Time To Live, TTL),生存时间到期后键会自动被删除。因此Redis可以作为缓存系统使用,在Redis3.0中的功能已经可以取代了Memcached。
Redis是使用C语言进行开发的。
Redis的版次号约定为,偶数是稳定的,奇数是非稳定的。
Windows安装可以通过这个网站指导:https://www.runoob.com/redis/redis-install.html
因为Redis不支持Windows。或者通过Cygwin在Windows环境下模拟Linux环境,然后再进行Redis安装测试。
提供一个cygwin网络安装的镜像资源:https://mirror.tuna.tsinghua.edu.cn/help/cygwin/
List | Set | ZSet |
---|---|---|
可以有重复元素 | 无重复元素 | 无重复元素 |
有序 | 无序 | 有序 |
element | element | element + score |
zset中:1)元素是String类型;2)元素具有唯一性,不重复;3)每个元素关联一个double类型的score,表示element的权重,然后再根据权重将元素从小到大进行排序;4)zset没有修改操作。
因为zset是一个有序集合,通过每个元素的权重(分数)对集合中的元素进行排序,那么如何进行排序呢?
数组的话,不便于插入和删除;链表的话查询效率太低下,需要遍历所有的元素;平衡树或者红黑树虽然效率较高但是实现起来太过复杂。因此zset的底层采用了一种新的数据结构——跳跃表。
有序链表-->双向有序链表-->跳跃表。
zset底层达到存储结构由跳跃表实现,实现方式有2中,分别叫做ziplist和skiplist。
当同时满足一下两个条件的时候用ziplist,其他的时候使用skiplist:
当ziplist作为zset的底层存储结构的时候,集合的每个元素使用两个紧挨在一起的压缩列表节点来保存,第一个节点保存元素的成员,第二个节点保存元素的分数。
当skiplist作为zset的底层存储结构的时候,使用skiplist按序保存元素及分数,使用dict来保存元素和分值的映射关系。
dict保存了key/value,key为元素,value为分值;skiplist保存的有序元素列表,其中每个元素包括元素和分值。dict和skiplist中的元素最后都只想同一个String对象。
还有很多很多没有理解明白的,以后补充。
标签:value 开源 散列类型 自动 数组 时间 windows环境 -- 知识点
原文地址:https://www.cnblogs.com/baishouzu/p/12341755.html