redis的String&bitmap

string类型操作

方法与数据类型挂钩

set 

nx  只能新增(不存在才set,应用于分布式锁)

xx  只能更新

get

append

setrange

getrange

strlen

getset    设置新值 返回老值

mset      原子性操作

type key

数值

Incr

抢购,秒杀,详情页,规避并发下对数据库事物的操作,

进而转换为完全由redis内存操作(计算向数据移动)

redis是二进制安全的(字节流存储/读取而非字符流,不会破坏编码)

中文编码方式不同,长度不同  *ASCII码

redis-cli --raw(格式化显示启动)

字符集 ascii

其他字符一般叫拓展字符集,拓展字符集不再对ascii重编码

ascii中字符编码第一位必定为0    0xxxxxxx

bitmap 面向bit操作

setbit key offset velue 直接设置字节

Bitcount key start end  [start end为字节的索引]

Bitpos key bit start end

bitop operation destkey key1 key2

bitmap使用场景

1.由用户系统,统计用户登录天数,窗口随机

setbit tom 1 1

setbit tom 7 1

setbit tom 364 1     用户tom全年 第二天 第八天 第365天登录

bitcount tom -2 -1  倒数16天(最后两个字节)登录几天

2.618做活动,送礼物时,假设2e用户,大库应备多少礼物?

僵尸用户/冷热用户/忠诚用户

随机窗口 活跃用户统计

比如1-3号 连续登陆去重

setbit 20220311 1 1

3.11号 1号用户登录

setbit 20220312 1 1

3.12号 1号用户登录

setbit 20220312 7 1

3.11号 7号用户登录

bitop or destkey 20220311 20220312     或运算得出两天都登录的用户位

bitcount destkey 0 -1   两天全部登录的所有用户

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值