Redis的数据类型
1、string(字符串)
string是redis最基本的类型,一个key对应一个value。
string类型是二进制安全的(意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象)
string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M。
2、hash(哈希,类似java里的Map)
Redis hash 是一个键值对集合。
Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。
3、list(列表)
Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)。
它的底层实际是个链表
4、set(集合)
Redis的Set是string类型的无序集合。它是通过HashTable实现的。
5、zset(sorted set:有序集合)
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。
redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。
6、HyperLogLog
Redis 在 2.8.9 版本添加了 HyperLogLog 结构
Redis HyperLogLog 是用来做基数统计的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的。
在 Redis 里面,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基 数。这和计算基数时,元素越多耗费内存就越多的集合形成鲜明对比。
但是,因为 HyperLogLog 只会根据输入元素来计算基数,而不会储存输入元素本身,所以 HyperLogLog 不能像集合那样,返回输入的各个元素。
7、GEO(地理位置)
Redis 在 3.2.0 版本添加了 HyperLogLog 结构
将指定的地理空间位置(纬度、经度、名称)添加到指定的key中。
这些数据将会存储到sorted set中,这样的目的是为了方便使用GEORADIUS或者GEORADIUSBYMEMBER命令对数据进行半径查询等操作