1、String—>key为String
- 设置指定key的值
- 在key不存在的时候设置key的值
- 获取key的值
- 设置多个指定key的值
- 获取多个key的值
- 获取key中存储字符的长度
- 将key中存储的数字加1
- 将key中存储的数字减1
- 删除指定的key
- 设置过期时间
- 获取当前剩余时间
1.2、应用场景
- 常规数据
- 缓存session,token,图片地址,序列化后的对象
- set、get
- 需要计数的场景
- 用户单位时间的请求树,页面单位时间的访问数
- set、get、incr、decr
- 分布式锁
- 利用setnx key value 可以实现一个分布式锁
2、List
双向列表,支持反向查找和遍历,更方便操作,不过带来额外开销
- 从左边添加元素可以多个
- 从右边添加元素可以多个
- 将指定索引的值设置为value
- 移除左边元素
- 移除右边元素
- 获取列表元素的数量
- 获取start 和 end之间的值
距离:
- 最新文章,最新动态
3、Hash(哈希)
String类型的键值对映射表,特别适用于存储对象,后续操作可以直接修改对象中某个字段的值
- 设置指定哈希表中指定字段的值
- 只有在指定字段不存在的时候设定指定字段的值
- 设置多个key-valus
- 获取指定哈希中指定的字段
- 获取指定哈希中一个或多个指定字段的值
- 获取指定hash表中所有的键值对
- 查看指定key中的field1是否存在
- 删除一个或多个哈希字段
- 获取指定哈希表中的字段数量
- 对指定哈希中的字符做运算操作
应用:
- 举例:用户信息、商品信息、文章信息、购物车信息。
- 相关命令:HSET (设置单个字段的值)、HMSET(设置多个字段的值)、HGET(获取单个字段的值)、HMGET(获取多个字段的值)
4、集合
- 添加元素可以多个
- 获取所有元素
- 获取指定集合的元素数量
- 判断是否在集合中
- 获取数据交集
- 存储数据交集
- 获取数据的并集
- 存储数据的交集
- 获取指定集合的差集
- 存储指定集合的差集
- 随机移除指定集合的一个或多个元素
-
应用场景
获取点赞的数量
- SCARD
- 获取共同好友,共同粉丝,共同关注等
- 用交集,并集,差集
- 随机抽奖
- SPOP 抽取后移除 适合不允许重复中将
- SRANDMEMBER 随机获取集合元素,允许重复中奖
Sorted Set
类似于Set,但是增加一个权重参数 score,使得集合中的元素能够按照score进行有序排列。