zoukankan      html  css  js  c++  java
  • redis的list、set、hash、sorted_set、skiplist

    redis的list、set、hash、sorted_set、skiplist

    list---

    Lpush和Rpush

    因为是lpush a先从左边进 然后是bcde 所以k1的排列是edcba

    因为是rpush a先从右边进 然后是bcde 所以k1的排列是abcde

    lopo

    通过lpop 弹出 a先从左进去的 所以先弹出来 f

    lpop k2 的时候 就是 abcdef 因为f先进去的 a最后进去的 a先出来

    同理 使用rpop和lpop效果相反

    lrange

    使用lrange可以把所以读出:

    注意:此处lrange的l不是左的意思了 是list的缩写

    lset

    这里可以扩展一个lset命令 用来覆盖

    lrem

    list链表是没有去重功能的 所以出现了这个去重命令

    lrem key名 num1 value ,num是去重的数量 就是去除几个 value是重复值

    linsert

    linsert有after和before两个参数

    hash---

    应用场景:对field的值进行计算 点赞、收藏、详情页

    单例像key插入数据:

    多个字段:

    hgetall

    hgetall是把所有这个建筑队全获取出 tail 和value全读出

    hkey 和hvals

    hkey是把所有的tail字段获取出

    hvals是把所有的值获取出

    hincrby

    加就在后面值写正值

    减就是负值

    set---

    场景:无序 、去重

    增删改查:

    set的交集

    解释:

    • 前两句sadd了两个key 分别是k2 k3 并且分别给了值
    • 然后smembers 查看key
    • sinter是取出k2 和k3 相交的部分并且返回
    • sintrstore是把k2 k3相交的部分放到目标key dest里面
    • 最后查看dest可以看出

    sdiff

    sdiff是取出两个key的差集

    sdiff key1 key2 这里要注意的是key1和key2的前后顺序 如果是要拿出key的值并且以key2的值作为差集参考是把key1放前

    srandmember

    srandmember随机事件

    主要应用场景 :抽奖

    解释:

    • 往k1里添加了几个用户 gzh zhangsan lisi wangwu tom Jack xiaoming

    现有四个奖品 六个人抽奖 srandmember key名 num 如果num是正数 则不会有重复用户 就是不会有一个人连续抽中的现象,如果num是负数 则会有重复

    • srandmember k1 4 随机选出4个用户 (没有重复)
    • srandmember k1 -4 有重复(lisi)

    还有一种情况 :礼物多 ,用户少

    • 这种情况后面跟的值必须是负数了 因为如果是正数 就不能重复 ,我们需要的就是多个礼物抽奖给少的人 肯定会出现一个人拿到多个礼物的情况

    spop

    场景:当我们抽奖的时候会有一种抽奖方式 就是抽中之后下次抽奖就不会再抽中你了 就是你中将了 下次抽奖你就不能参与了

    此时我们就可以用到spop命令

    sorted_set

    sorted_set和set相似 但也有些差异 它需要带着分值

    添加数据用的是zadd key名 num value

    往物理内存插入的时候 它是按照分值的左小右大的规则

    查看用的是 zrange key名 开始位置 结束位置

    还可以和分值一块显示 zrange key名 开始位置 结束位置 wirhscores

    zrangebyscore

    我又往k1加了两个数据 5 gzh 和7 tom

    我现在想查找分值 在3到8的数据 zrangebyscore k1 3 8

    score 的意思就是分值

  • 相关阅读:
    HTML+CSS+JS设计注册页面
    1.20学习总结
    Linux安装python3
    Linux命令
    vue安装
    Python实现发送邮件
    C语言带参数的main函数
    Fibonacci 数列递归 重复计算
    gray code 格雷码 递归
    河内塔
  • 原文地址:https://www.cnblogs.com/beizhai/p/13803371.html
Copyright © 2011-2022 走看看