前言:
在Redis面试题中已经大致介绍了redis的数据存储类型,今天就详细聊一下,数据类型到底在生活中应用在哪些方面?
string(key-value)
生活中的场景
- 计数器、阅读量
INCR article:readcount:{文章id}
GET article:readcount:{文章id}
- Web集群session共享
spring session + redis实现session 共享
- 分布式系统全局序列号
# redis批量生成序列号提升性能
INCRBY orderld 1000
hash :(key field value)可以存储用户详细信息
- 设置单个属性:hset key field value
- 设置多个属性:hmset key field1 value1 field2 value2
- 获取指定键所有的属性:hkeys key
- 获取⼀个属性的值:hget key field
- 获取多个属性的值:hmget key field1 field2
- 获取所有属性的值:hvals key
- 删除属性,属性对应的值会被⼀起删除:hdel key field1 field2 …
list:可用于存放微博、微信公众号消息(先发表的在下面,后发表的在上面)
- 在左侧插⼊数据:lpush key value1 value2
- 在右侧插⼊数据:rpush key value1 value2 …
- 在指定元素的前或后插⼊新元素:linsert key before或after 现有元素 新元素
- 返回列表⾥指定范围内的元素:lrange key start stop
- 设置指定索引位置的元素值:lset key index value
- 删除指定元素:lrem key count value
- count > 0: 从头往尾移除
- count < 0: 从尾往头移除
- count = 0: 移除所有- 截取在[start stop]区间内的元素:ltrim key start stop
set:可用与微信、微博点赞,收藏,标签等
- 添加元素:sadd key member1 member2
- 返回所有的元素:smembers key
- 删除指定元素:srem key value
zset:用于微博热搜排行榜
- 添加:zadd key score1 member1 score2 member2
- 返回指定范围内的元素:zrange key start stop
- 返回score值在min和max之间的成员:zrangebyscore key min max
- 返回成员member的score值: zscore key member
- 删除指定元素:zrem key member1 member2
- 删除权重在指定范围的元素:zremrangebyscore key min max