字符串:字符串
列表(列表
散列:散列表
Set :无序集合
有序集合
位图:布隆过滤器
GeoHash :坐标由Sorted Set实现,通过zset的score排序可以得到坐标附近的其他要素,通过score恢复为坐标值可以得到要素的原始坐标
HyperLogLog :统计是不重复的数据,用于大数据基数的统计
流:内存版的kafka
常用的数据类型(主要是前五种) 1,String String是Redis最基本的类型,与Memcached一模一样的类型,一个key对应一个value。
意思是string http://www.Sina.com/http://www.Sina.com /。 例如jpg图像或序列化的对象。
Redis字符串value最多可以为512M。
数据结构:
2、List 类型是二进制安全的Redis列表是一个简单的字符串列表,按插入顺序排列。 可以在列表的开头(左)或末尾(右)添加元素。
其基础实际上是双向链表,两端操作性能高,索引下标操作中间节点性能差。
数据结构:
列表的数据结构是快速链接表quickList。
首先,如果列表元素较少,则使用连续的内存存储。 此结构是ziplist,即压缩列表。
3、Set **Redis set对外提供的功能与list类似,是列表的功能。 特殊之处在于,set可以自动排出重量。 **凶暴的虾需要保存列表数据,不想出现重复数据时,set是一个很好的选择,set提供了确定一个成员是否在set集合中的重要界面。 这也是list-- http://www.Sina.com /
随着数据的增加,执行时间变短,如果是o(1),则数据增加,查找数据的时间不变的算法。
数据结构:
4、Hash Redis hash为Redis的string可以包含任何数据
Redis hash是单键多值
就像Java的映射,对象
用户ID是搜索到的key,保存的value用户对象包含姓名、年龄、生日等信息,如果用普通的key-value结构保存
数据结构:
5、Sorted Set Redis有序集合zset与普通集合set非常相似,见Redis的Set是string类型的无序集合。它底层其实是一个value为null的hash表,所以添加,删除,查找的复杂度都是O(1)。
不同之处在于,有序集合中的每个成员都有关联的分数(score ),该分数用于将集合中的成员从最低点向最高点排序。一个键值对集合
由于元素是有序的,因此也可以根据分数(score )或顺序)立即检索元素的范围。
访问有序集合的中间元素也非常快
数据结构:
6、Bitmaps合理使用操作位可以有效提高内存利用率和开发效率。
Redis将名为Bitmaps的“数据类型”转换为一个string类型的field和value的映射表,hash特别适合用于存储对象。
)1) Bitmaps本身不是数据类型,而是一个没有重复元素的字符串集合。,但集合的成员是唯一的,但是评分可以是重复了 。
)2) Bitmaps单独提供命令集,因此在Redis中使用Bitmaps和使用字符串的方法不太一样。实现对位的操作:
7、HyperLogLog Redis HyperLogLog是实际上它就是字符串(key-value),HyperLogLog的优点是可以对字符串的位进行操作。
Redis只需要为每个HyperLogLog密钥使用12 KB的内存,就可以计算接近2^64个不同元素的基数。 计算这个和基数时,可以把Bitmaps想象成一个以位为单位的数组, 数组的每个单元只能存储0和1, 数组的下标在Bitmaps中叫做偏移量。
但是,用来做基数统计的算法
8、地理空间就绪性3.2增加了对地理空间类型的支持**。 GEO、Geographic、地理信息的缩写**。 此类型为在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定的、并且是很小的。