05 Redis的String类型&bitmap

环境准备

redis-cli客户端

# 进入客户端
redis-cli

# 打开帮助文档
redis-cli --help

常用参数

参数英文描述中文描述
-h <hostname>Server hostname (default: 127.0.0.1).主机IP
-p <port>Server port (default: 6379).端口号
-n <db>Database number.数据库编号0~15
-a <password>Password to use when connecting to the server.密码
--rawUse raw formatting for replies (default when STDOUT is not a tty).格式化输出,如:中文显示unicode码,加上这个参数就显示中文。

命令演示
在这里插入图片描述

最基础的命令SET/GET

在这里插入图片描述
在这里插入图片描述
加过期时间(秒)
在这里插入图片描述
加过期时间(毫秒)
在这里插入图片描述
只能新增
在这里插入图片描述
只能修改
在这里插入图片描述

通用组命令

在这里插入图片描述
常用命令:

  • DEL
    在这里插入图片描述
  • EXISTS
    在这里插入图片描述
  • EXPIRE
    在这里插入图片描述
  • KEYS
    在这里插入图片描述
  • RENAME
    在这里插入图片描述
  • TTL
    在这里插入图片描述
  • TYPE
    在这里插入图片描述

string组命令

在这里插入图片描述

通用
  • SET
    在这里插入图片描述
  • GET
    在这里插入图片描述
  • GETSET
    在这里插入图片描述
  • MGET
    在这里插入图片描述
  • MSET
    在这里插入图片描述
  • PSETEX
    在这里插入图片描述
  • SETEX
    在这里插入图片描述
  • SETNX
    在这里插入图片描述
字符串
  • APPEND
    在这里插入图片描述
  • GETRANGE
    在这里插入图片描述
  • SETRANGE
    在这里插入图片描述
  • STRLEN
    在这里插入图片描述
数值
  • DECR
    在这里插入图片描述
  • DECRBY
    在这里插入图片描述
  • INCR
    在这里插入图片描述
  • INCRBY
    在这里插入图片描述
  • INCRBYFLOAT
    在这里插入图片描述
位图

1字节 = 8个二进制位(0000 0000)
offset是二进制位的索引
在这里插入图片描述

  • SETBIT
    在这里插入图片描述
    上面操作后的结果:
    在这里插入图片描述

  • GETBIT
    在这里插入图片描述

  • BITPOS
    继续上面的操作,start、end是指字节的索引,查bit第一次出现的位置
    在这里插入图片描述

  • BITCOUNT
    继续上面的操作,start、end是指字节的索引,查1出现的次数
    在这里插入图片描述

  • BITOP
    准备a、b
    在这里插入图片描述
    在这里插入图片描述
    a、b按位做与运算,结果放到andkey中
    在这里插入图片描述
    在这里插入图片描述
    a、b按位做或运算,结果放到orkey中
    在这里插入图片描述
    在这里插入图片描述

  • BITFIELD
    TODO

位图的应用场景

  • 场景1
    需求:用户系统,统计用户登录天数,且时间窗口随机
    分析:一个二进制位代表一天,一年365或366天,366位/8 = 46字节
    实现:
    garen用户为例,哪天登录就在对应哪天的位索引的值设置成1
    比如第1、10、365天登录。
    setbit garen 0 1
    setbit garen 9 1
    setbit garen 364 1
    老板要求查出garen这一年登录的次数
    bitcount garen 0 -1
    在这里插入图片描述
  • 场景2
    需求:
    京东618,用户登录就送礼物。京东有2亿用户,那么要备多少货?
    用户:僵尸用户、冷热用户、忠诚用户
    需要统计活跃用户数量,随机时间窗口,比如1号-3号,连续登录,要去重
    分析:
    日期作为key,用户id与一个二进制位映射,比如1 garen,2 gosling,7 lxl …
    用户登录,二进制位设置为1
    在这里插入图片描述
    实现:
    在这里插入图片描述

上一篇《04 高并发负载均衡:基于keepalived的LVS高可用搭建》
下一篇《06 Redis的list、set、hash、sorted_set、skiplist》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值