键(key)
常用命令
1. 字符串(String)
1.1 基本命令
如下:设置kv键值对,存货时长为30秒
1.3 应用场景
- 视频点赞
- 是否喜欢文章
2. 列表(List)
2.1 简介
2.2 常用命令
2.3 应用场景
- 微信公众号消息订阅
3. 哈希(Hash)
3.1 简介
3.2 常用命令
4. 集合(Set)
4.1 简介
4.2 常用命令
4.3 应用场景
- 微信小程序抽奖
- 微信朋友圈点赞查看同赞好友
- QQ推可能认识的朋友
5. 有序集合(Zset)
5.1 简介
5.2 常用命令
5.3 应用场景
- 排行榜展示
6. 位图(bitmap)
6.1 简介
概括
6.2 需求场景
- 用户每日登录
- 用户每日是否点击广告
- 钉钉签到,上班打卡
6.3 基本命令
如下:将用户2001和2002中同一个bit位中值一样的数据统计到k2中,后通过bitcount命令返回k2存的值
127.0.0.1:6379> setbit 2001 0 1
(integer) 0
127.0.0.1:6379> setbit 2001 1 1
(integer) 0
127.0.0.1:6379> setbit 2001 2 1
(integer) 0
127.0.0.1:6379> setbit 2001 3 1
(integer) 0
127.0.0.1:6379> setbit 2002 2 1
(integer) 0
127.0.0.1:6379> setbit 2002 3 1
(integer) 0
127.0.0.1:6379> setbit 2002 4 1
(integer) 0
127.0.0.1:6379> bitop and k2 2001 2002
(integer) 1
127.0.0.1:6379> bitcount k2
(integer) 2
7. 基数统计(HyperLogLog)
7.1 简介
7.2 需求场景
- 统计某个网站的uv,某个文章的uv
uv:unique visitor独立访客,可理解为用户IP
为防止某些用户进行刷单或者刷访问量即可用到基数统计,将所有uv相同的去重后统计进行统计
7.3 基本命令
127.0.0.1:6379> pfadd p1 1 1 1 2 3 4 #将数据添加到类型为HyperLogLog的p1中
(integer) 1 #返回1为true
127.0.0.1:6379> pfadd p2 2 2 2 2 3
(integer) 1
127.0.0.1:6379> pfcount p1 #去重
(integer) 4 #去重后的实际个数
127.0.0.1:6379> pfcount p2
(integer) 2
127.0.0.1:6379> pfmerge destkey p1 p2 #将p1和p2结果集合并到名为destkey的结果集中
OK
127.0.0.1:6379> pfcount destkey
(integer) 4
8. 地理空间(GEO)
8.1 简介
8.2 基本命令
weixinwei'xin
9. 流(Stream)
9.1 简介
一个消息链表,将所有加入的消息都串起来,每个消息都有一个唯一的 ID 和对应的内容
1 |
Message Content |
消息内容 |
2 |
Consumer group |
消费组,通过XGROUP CREATE 命令创建,同一个消费组可以有多个消费者 |
3 |
Last_delivered_id |
游标,每个消费组会有个游标 last_delivered_id,任意一个消费者读取了消息都会使游标 last_delivered_id 往前移动。 |
4 |
Consumer |
消费者,消费组中的消费者 |
5 |
Pending_ids |
消费者会有一个状态变量,用于记录被当前消费已读取但未ack的消息Id,如果客户端没有ack,这个变量里面的消息ID会越来越多,一旦某个消息被ack它就开始减少。这个pending_ids变量在Redis官方被称之为 PEL(Pending Entries List),记录了当前已经被客户端读取的消息,但是还没有 ack (Acknowledge character:确认字符),它用来确保客户端至少消费了消息一次,而不会在网络传输的中途丢失了没处理 |
9.2 基本命令
10. 位域(bitfield)
了解即可
常用命令