redis有几种数据类型?分别是什么?
Redis是一个开源的内存存储的数据结构数据库,它可以作为数据库,缓存,消息队列。支持多种数据格式。和mc相比具有数据持久化的能力。并能通过哨兵和集群提高可用性。
(1)字符串类型:在Redis里面采用的是SDS来封装char[]的,这个也是redis的最小存储单元。RedisObject是redis的基本数据类型,对照C#中的Object对象。而字符串类型就是在RedisObject基础上封装的代码。
(2)列表类型:List类型按照插入顺序排序,最常用作消息队列,常用的就四个方法LPOP,LPUSH,RPOP,RPUSH。我们可将能够异步处理的请求放到消息队列中去。
(3)哈希类型:Redis中的哈希类型,可以用来存放对象了,类似与C#中的Dictionary以键值对的形式存放数据
(4)集合类型:集合类型是哈希类型的“简易版”,它比Dictionary节省很多内存消耗,类似C#的HashSet类型。底层数据结构和哈希类型类似,只是value为null,所以key不能重复,且无序。
(5)有序集合类型:有序集合和哈希类型的最大区别就是范围查找时它的时间复杂度为O(logN) + M,后者为O(N)。它的每一个字符串元素都会关联到score,里面的元素总是通过score进行排序。