注:本文都是对官方文档的搬运:
https://redis.io/documentation
https://redis.io/topics/data-types-intro
Redis的数据类型
Redis支持五种数据类型:Strings(字符串)、Hashes(哈希)、Lists(列表)、Sets(集合)、Sorted sets(有序集合)。
Strings
redis最基本的数据类型,是二进制安全,即可以存储任何数据,因为任何数据都能转换为二进制数据。但是字符串的值最大为512M。
常用操作:
- 原子计数器:利用INCR, DECR, INCRBY,DECRBY命令可以实现原子增减操作。
- 字符串追加:使用APPEND命令附加到字符串末尾。
- 下标操作: GETRANGE 获取指定下标字符串 和 SETRANGE在指定下标插入一个字符串
- 布隆过滤器:GETBIT和SETBIT创建布隆过滤器,占用空间小。
Lists
字符串列表,双向链表实现的双端队列,可在头部和尾部分别进行入队和出队的操作,具备队列和栈的功能。列表最多可存储 232 - 1 元素 (4294967295, 每个列表可存储40多亿)。
基于lists可以实现消息队列。
Sets
无序的字符串集合。以O(1) 的时间复杂度(无论集合中有多少元素时间复杂度都为常量)完成 添加,删除以及测试元素是否存在的操作。
Sets不允许重复数据,所以可以实现字符串去重的功能。
Sets可以实现取交集、并集、差集、获取随机元素的功能。
Sets可以统计访问人数
Hashes
字符串字段和字符串值之间的映射,可以存储对象的数据类型。
一个拥有少量(100个左右)字段的hash需要 很少的空间来存储,所有你可以在一个小型的 Redis实例中存储上百万的对象。
Sorted sets
排序的Sets,O(log(N))完成添加,删除和更新元素的操作,插入时就排好序。
可以实现动态的排行榜。
可以对数据进行排序,然后分页获取数据。