键(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)
了解即可
常用命令












