key类型:String
value类型:
常用:String
、List
、Set
、Sortedset
、Hash
非常用:Bitmap
、Geo
、Stream
(5.0新增)
TIPS:Redis中命令是忽略大小写,key是不忽略大小写
String
能表达3种值的类型:字符串、整数、浮点数 100.01是一个六位的串
应用场景:
- 普通的赋值
-
incr
用于乐观锁(配合watch实现乐观锁) -
setnx
用于分布式锁
List
可以存储有序、可重复的元素;获取头部或尾部附近的记录极快;最多232-1个元素
应用场景:
- 作为栈和队列使用
- 可用于各种列表
Set
无序、唯一元素;最大成员数为232-1
应用场景:
- 适用于不能重复的且不需要顺序的数据结构
Sortedset
有序集合,元素本身是无序不重复的;每个元素关联一个分数,可按分数排序,分数可重复
应用场景:
- 可以按分值排序,所以适用于各种排行榜单
Hash
string类型的field和value的映射,每个hash可以存储232-1键值对
应用场景:
- 对象的存储,表数据的映射
Bitmap
进行位操作的;通过一个bit位来表示某个元素对应的值或者状态,其中的key就是对应元素本身,bitmap本身会极大的节省存储空间
应用场景:
- 用户每月签到,用户id为key,日期作为偏移量 1表示签到
- 统计活跃用户,日期为key,用户id为偏移量 1表示活跃
- 查询用户在线状态,日期为key,用户id为偏移量 1表示在线
Geo
用来处理地理位置信息的。主要是利用Z阶曲线、Base32编码和geohash算法
应用场景:
- 记录地理位置
- 计算距离
- 查找“附近的人”
Stream
Redis5.0后新增的数据结构,用于可持久化的消息队列
应用场景:
- 消息队列的使用
网友评论