1、redis的5种数据结构
1)字符串类型 string
string是redis中最基本的数据类型,一个key对应一个value
string类型是二进制安全的,即可以包含任何数据,包括数字、jpg图片或者序列化对象甚至是一张图片,最大512M
2)列表类型 list
list其实就是链表,redis的底层是用双向链表实现的list,是有序的,value可重复的,可以通过下标取出对应的value值,左右两边都可以插入和删除数据。
3)集合类型 set
集合类型也是用来保存多个字符串的元素,但和列表不同的是集合中 1. 不允许有重复的元素,2.集合中的元素是无序的,不能通过索引下标获取元素,3.支持集合间的操作,可以取多个集合取交集、并集、差集。
4)哈希类型 hash
hash是一个string 类型的field和value的映射表。
hash特别适合存储对象。相对于将对象的每个字段存成单个string 类型。一个对象存储在hash类型中会占用更少的内存,并且可以更方便的存取整个对象。
Redis的Hash数据类型的value内部是一个HashMap,如果该Map的成员比较少,则会采用一维数组的方式来紧凑存储该Map,省去了大量指针的内存开销。
5)有序集合类型 zset
zset即Redis sorted set
Redis sorted set的使用场景与set类似,区别是set不是自动有序的,而sorted set可以通过用户额外提供一个优先级(score)的参数