0
点赞
收藏
分享

微信扫一扫

Redis(二)value类型

不同类型的命令,看下面的地址:
https://www.runoob.com/redis/redis-tutorial.html

String类型

二进制操作位可以用于用户登录统计。一个字节占8个位。

场景1:一年内,张三登录过几天?

设置一个长度为366()的位图,每一位代表一天,key是用户id(zhangsan),登录将该天设为1。

127.0.0.1:0>setbit zhangsan 0 1 # 第一天登录
"0"
127.0.0.1:0>setbit zhangsan 300 1 # 第301天登录
"0"
127.0.0.1:0>setbit zhangsan 365 1 # 第365天登录
"0"
127.0.0.1:0>STRLEN zhangsan # 统计总共占用46个字节,就能记录一个人一年的登陆情况
"46"
127.0.0.1:0>bitcount zhangsan # 统计总共登陆次数
"3"
127.0.0.1:0>BITCOUNT zhangsan 0 1 # 统计0到1的字节中张三登录的次数,[10000000,00000000]
"1"

场景2:统计某电商网站,每天有几个用户登录?

zhangsan表示0位,lisi表示1位,20210601张三和李四都登录,20210602只有李四登录。

127.0.0.1:0>setbit 20210601 0 1 # 张三登录
"0"
127.0.0.1:0>setbit 20210601 1 1 # 李四登录
"0"
127.0.0.1:0>setbit 20210602 1 1 # 李四登录
"0"

统计20210601到20210602的总共活跃用户?去重

127.0.0.1:0>bitop or loginCount 20210601 20210602  # 将20210601 和20210602的用户登录记录做或(or)操作,结果记录在新的keyloginCount中
"1"
127.0.0.1:0>BITCOUNT loginCount # 查看记录数
"2"

list类型

list模型:双向链表。

用法场景

 1) 同向:lpush lpop(rpush rpop) 栈的特性,先进后出
 2) 异向:lpush rpop(rpush lpop) 队列,先进先出
 3) lindex():数组,根据下标获取list元素
 4) ltrim:截取保留范围内的元素,删除两端

hash类型

可以认为hash类型实际是HashMap

Set类型

zset类型

举报

相关推荐

0 条评论