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 两天全部登录的所有用户