• 签到
    setbit sign:1:202207 0 1//用户1在20220701这天签到,需要日期-1;
    getbit sign:1:202207 0 //检查20220701这天是否签到,返回1表示签到0没有
    bitcount sign:1:202207 //统计7月签到次数
    bitfield sign:1:202207 get u28 0 //获取前28天签到数据,即当天日期前面加u,返回的十进制数据,转换成二进制,然后循环
    $signarr = base_convert($signarr[0],10,2);
             $rili=[];//得到日历数据
             $count=0;//连续签到次数
             for($i=$sign;$i<=$today;$i++){
                 $is =   $redis->getBit($key,$i);
                 if($is==1){
                     $rili[]=$i+1;
                     $count +=1;
                 }else{
                     $count=0;
                 }
             }
    expire sign:1:202207 31243600 //设置key过期时间最多1个月
    ttl sign:1:202207 返回过期时间秒数,-1是永不过期
    bitpos sign:1:202207 1 //首次签到日期+1
    zadd rank:sign:20220701 1657092489 1//用户1签到时间,签到排行榜,此处一定要判断用户id>0
    expireat rank:sign:20220701 time()+25*3600 //25小时以后过期
    zrangebyscore rank:sign:20220701 -inf +inf withscores limit 0 100 //前100名排行榜
    zcard rank:sign:20220701 //当天签到总人数
    zrank rank:sign:20220701 1//查询自己排名
  • 浏览量,pv,uv,去重的,点击量
    pfadd uv:20220706 127.0.0.1 //当天独立访客记录
    pfadd uv:all 统计总站独立访问
    pfcount uv:20220706 //独立当天访客统计
    pfcount uv:all //统计总访问独立ip
    incr pv:content:1 //文章浏览量,每刷新一次+1
    incr pv:20220706 //网站pv统计,刷新一次加一次只统计当天,设置key0点过期$end = mktime(23, 59, 59, date(‘m’), date(‘d’), date(‘Y’));//当天结束时间过期
    incr pv:all //统计整站总访问量
    incr ip:1 //访问次数限制
  • 队列
    lpush list:sms “必须是字符串数据” //入队
    lpop list:sms //出对数据 需要死循环
  • 排行榜
    zincrby rank:202207 10.02 1 //增加积分,月排行榜
    zrevrangebyscore rank:202207 +inf -inf withscores limit 0 100//前100名
  • 过期短信验证码,防重复提交
    setex sms:18291447788 30 2345 //短信30秒过期
    get sms:18291447788 //获取验证码
    setex save:md51111 30 1//30秒内不能重复,用于评论,判断是否等于1作为是否提交.
  • 点赞
    setbit pv:zan:1 1000 1 照片1用户1000点赞,取消设置0
    bitcount pv:zan:1 点赞次数
  • 抽奖
    sadd q 1 2 3 4 5 添加值
    spop q 随机取出一个值
  • 投票
    zadd vote:1 1 uid1 每人投1票
    zincrby vote 1 a1 //文章每次加一票和上边一起执行
    zrevrangebyscore vote +inf -inf withscores limit 0 10 排行榜
  • 微博,朋友圈,的feed流
    hset uid:1 name jay //存储用户信息用哈希
    hset uid:2 name join
    hset uid:3 name zhangsan
    hset uid:4 name lisi
    sadd follow:1 3 4 //jay粉丝,也就是3,4关注了1
    sadd follow:2 4 //lisi关注join

set message:100 ‘内容’//发布一条信息id是100
smembers follow:1 //查询jay粉丝
xadd inbox:3 * id meaaage:100 //放入信箱
xadd inbox:4 * id meaaage:100

set message:101 ‘内容2’
smembers follow:2
xadd inbox:4 * id message:101

xrange inbox:3 - + count 10 //zhangsan查看自己消息 id
get message:100 //查看具体内容

xrange inbox:4 - + count 10 //lisi查看朋友圈
get message:100
get message:101

  • 聊天室 stream流
    xadd room:1 * date 2022-07-10-12:13:14 name joy message “hello” //发言,房间room:1
    xadd room:1 * date 2022-07-10-12:13:15 name zhangsan message “hi”
    xadd room:1 * date 2022-07-10-12:13:25 name lisi message “ok”
    xlen room:1 //发言数量
    xrange room:1 - + count 1 读取一条信息
    xread count 5 streams room:1 $ 以非阻塞方式读取5条消息
    xread block 50000 count 5 streams room:1 $ 阻塞方式新开窗口
  • 位置服务,附近的人,店,外卖,点评,找房
    geoadd shop 120 30 1 添加店位置,经度纬度,1是店id
    geoadd shop 100 24 2
    geopos shop 1 2 获取1经纬度,可以多个
    geodist shop 1 2 km 两点1,2之间距离默认m
    geohash shop 1 2 地理位置哈希值支持多个地址
    georadius shop 120 30 5000 km count 10 withdist asc//查询附近5000km内位置距离,10条数据,由近到远
    geoRadiusByMember shop 1 5000 km withdist asc //查询1附近5万km内距离,同上
  • hash计数器,用来记录粉丝数,关注数量
    hset uid:info:1 num 1 qq 3246566 记录信息
    hincrby uid:info:1 num 1 自动+1
    hget uid:info:1 num //获取数据
    • 基数,性别,年龄,爱好
      pfadd uv:20220710 “127.0.0.1” 统计今天ip
      pfcount uv:20220710 统计
      pfmerge uv uv:20220710 uv:20220712 合并
      pfadd sex:1 1 男
  • zset去重排序排行榜,好友列表,历史记录
    zadd rank:store 100 1 //用户1
文档更新时间: 2022-07-12 17:14   作者:Yoby