zoukankan      html  css  js  c++  java
  • list类型







    lpush key value

    作用: 把值插入到链接头部

    rpop key

    作用: 返回并删除链表尾元素

    rpush,lpop: 不解释

    lrange key start stop

    作用: 返回链表中[start ,stop]中的元素
    规律: 左数从0开始,右数从-1开始

    lrem key count value

    作用: 从key链表中删除 value值
    注: 删除count的绝对值个value后结束
    Count>0 从表头删除
    Count<0 从表尾删除

    ltrim key start stop

    作用: 剪切key对应的链接,切[start,stop]一段,并把该段重新赋给key

    lindex key index

    作用: 返回index索引上的值,
    如 lindex key 2

    llen key

    作用:计算链接表的元素个数
    redis 127.0.0.1:6379> llen task
    (integer) 3
    redis 127.0.0.1:6379>

    linsert k### ey after|before search value
    作用: 在key链表中寻找’search’,并在search值之前|之后,.插入value
    注: 一旦找到一个search后,命令就结束了,因此不会插入多个value

    rpoplpush source dest

    作用: 把source的尾部拿出,放在dest的头部,
    并返回 该单元值

    场景: task + bak 双链表完成安全队列

    业务逻辑:
    1:Rpoplpush task bak
    2:接收返回值,并做业务处理
    3:如果成功,rpop bak 清除任务. 如不成功,下次从bak表里取任务

    brpop ,blpop key timeout

    作用:等待弹出key的尾/头元素,
    Timeout为等待超时时间
    如果timeout为0,则一直等待

    场景: 长轮询Ajax,在线聊天时,能够用到

    • Setbit 的实际应用
    

    场景: 1亿个用户, 每个用户 登陆/做任意操作 ,记为 今天活跃,否则记为不活跃

    每周评出: 有奖活跃用户: 连续7天活动
    每月评,等等...

    思路:

    Userid dt active
    1 2013-07-27 1
    1 2013-0726 1

    如果是放在表中, 1:表急剧增大,2:要用group ,sum运算,计算较慢

    用: 位图法 bit-map
    Log0721: ‘011001...............0’

    ......
    log0726 : ‘011001...............0’
    Log0727 : ‘0110000.............1’

    1: 记录用户登陆:
    每天按日期生成一个位图, 用户登陆后,把user_id位上的bit值置为1

    2: 把1周的位图 and 计算,
    位上为1的,即是连续登陆的用户

    redis 127.0.0.1:6379> setbit mon 100000000 0
    (integer) 0
    redis 127.0.0.1:6379> setbit mon 3 1
    (integer) 0
    redis 127.0.0.1:6379> setbit mon 5 1
    (integer) 0
    redis 127.0.0.1:6379> setbit mon 7 1
    (integer) 0
    redis 127.0.0.1:6379> setbit thur 100000000 0
    (integer) 0
    redis 127.0.0.1:6379> setbit thur 3 1
    (integer) 0
    redis 127.0.0.1:6379> setbit thur 5 1
    (integer) 0
    redis 127.0.0.1:6379> setbit thur 8 1
    (integer) 0
    redis 127.0.0.1:6379> setbit wen 100000000 0
    (integer) 0
    redis 127.0.0.1:6379> setbit wen 3 1
    (integer) 0
    redis 127.0.0.1:6379> setbit wen 4 1
    (integer) 0
    redis 127.0.0.1:6379> setbit wen 6 1
    (integer) 0
    redis 127.0.0.1:6379> bitop and res mon feb wen
    (integer) 12500001

    如上例,优点:
    1: 节约空间, 1亿人每天的登陆情况,用1亿bit,约1200WByte,约10M 的字符就能表示
    2: 计算方便

  • 相关阅读:
    zw版【转发·台湾nvp系列Delphi例程】HALCON MoveRectangle
    zw版【转发·台湾nvp系列Delphi例程】HALCON SetIcon1
    zw版【转发·台湾nvp系列Delphi例程】HALCON SetIcon2
    zw版【转发·台湾nvp系列Delphi例程】HALCON DispArc
    zw版【转发·台湾nvp系列Delphi例程】HALCON HSerializedItem
    zw版【转发·台湾nvp系列Delphi例程】HALCON union1
    zw版【转发·台湾nvp系列Delphi例程】HALCON SqrtImage
    zw版【转发·台湾nvp系列Delphi例程】HALCON SubImage
    zw版【转发·台湾nvp系列Delphi例程】HALCON SetWindowExtent
    Raphael绘制圆圈环绕方法
  • 原文地址:https://www.cnblogs.com/qinsilandiao/p/10877413.html
Copyright © 2011-2022 走看看