目录
简单复习一下
一、String
简介
常用个性命令
常见业务场景
1.秒杀商品的扣库存
2.热点微博点赞数量
二、Hash
简介
常用个性命令
常见业务场景
1.热点明星资料
2.双十一上架的商品属性
三、List
简介
常用个性命令
常见业务场景
1.热点明星的粉丝列表
四、Set
简介
常用个性命令
常见业务场景
1、微信抽奖小程序
2、微博共同关注/共同好友
五、zset / sorted set
简介
常用个性命令
常见业务场景
1.微博热搜榜单
该文章适合有一定redis 基础的同学
简单复习一下
其实redis是有八种类型的,分为:
五大数据类型:String,List,Set,Hash,Zset
三大特殊数据类型:
1、geospatial(地理位置),
2、HyperLogLog(用来做基数统计的算法),
3、bitmaps(存储0和1)
因为主要考的是五大类型所以三大特殊类型就一笔带过来。
一、String
简介
String数据结构是简单的key-value类型,value其实不仅可以是String,也可以是数字。
常用个性命令
append key "xxx" | 在该key对应的value值追加上xxx |
incr key | 该key对应的value自增1 |
incrby key xx | 该key对应的value增加xx |
decr key | 该key对应的value自减1' |
decrby key xx: | 该key对应的value自减xx |
。。。 | 。。 |
常见业务场景
1.秒杀商品的扣库存
2.热点微博点赞数量
。。。。
二、Hash
简介
这里value存放的是结构化的对象,比较方便的就是操作其中的某个字段。想象一下java的map就懂了。
常用个性命令
HMSET key field1 value1 [field2 value2 ] | 同时将多个 field-value (域-值)对设置到哈希表 key 中 |
HSET key field value | 将哈希表 key 中的字段 field 的值设为 value |
HSETNX key field value | 只有在字段 field 不存在时,设置哈希表字段的值。 |
HKEYS key | 获取所有哈希表中的字段 |
HVALS key | 获取哈希表中所有值。 |
HGETALL key | 获取在哈希表中指定 key 的所有字段和值 |
。。。 | 。。。 |
常见业务场景
1.热点明星资料
2.双十一上架的商品属性
三、List
简介
1、它是一个字符串链表,left,right 都可以插入添加
2、如果键不存在,创建新的链表 如果键已存在,新增内容
3、如果值全移除,对应的键也就消失了
4、链表的操作无论是头和尾效率都极高,但假如是对中间元素进行操作,效率就很惨淡了。
常用个性命令
lpush key | xx:将xx插入到集合头部 |
rpush key | 将xx插入到集合尾部 |
lpop key | 移除该集合的左值 |
rpop key | 移除该集合的右值 |
LRANGE key start stop | 类似分页查询 |
LPUSH key value [value …] | 向列表左边添加元素 |
RPUSH key value [value …] | 向列表右边添加元素 |
。。。 | 。。。 |
常见业务场景
1.热点明星的粉丝列表
四、Set
简介
set是一个元素不重复的集合
常用个性命令
SRANDMEMBER key [个数] | 从集合中随机弹出指定个元素,元素不删除 |
SPOP key[个数] | 从集合中随机弹出指定个元素,出一个删一个 |
SCARD key | 获取集合中的元素个数 |
SADD key value | 添加元素 |
SREM key value | 删除元素 |
SDIFF key [key …] | 集合的差集运算A - B |
SINTER key [key …] | 集合的交集运算A ∩ B |
SUNION key [key …] | 集合的并集运算A U B |
。。。 | 。。。 |
1
常见业务场景
1、微信抽奖小程序
用户ID,立即参与按钮 :SADD key 用户ID
显示已经有多少人参与了:SCARD key
抽奖(从set中任意选取N个中奖人):
SRANDMEMBER key 2(随机抽奖2个人,元素不删除)
SPOP key 3(随机抽奖3个人,元素会删除)
2、微博共同关注/共同好友
五、zset / sorted set
简介
zset / sorted set多了一个权重参数score,集合中的元素能够按score进行排列。
常用个性命令
ZADD key score member [score member …] | 添加元素 |
ZRANK key member | 按照元素分数从小到大的顺序返回 |
ZRANGE key start stop [WITHSCORES] | |
ZREVRANK key member | 按照元素分数从大到小的顺序返回 |
ZREVRANGEBYSCORE key max min [WITHSCORES] | 返回有序集中指定分数区间内的成员,分数从高到低排序 |
。。。 | 。。。 |