HTML5技术

Redis中的数据结构与常用命令 - 雪飞鸿(2)

字号+ 作者:H5之家 来源:H5之家 2017-06-04 11:03 我要评论( )

LIST 命令作用 LPUSH将一个或多个值推入列表左端 RPUSH将一个或多个值推入列表右端 LPOP移除并返回列表最左端的值 RPOP移除并返回列表最右端的值 LINDEX根据索引获取LIST中的值 LRANGE获取LIST中索引在指定范围内的


 

  • LIST
  • 命令作用

    LPUSH 将一个或多个值推入列表左端

    RPUSH 将一个或多个值推入列表右端

    LPOP 移除并返回列表最左端的值

    RPOP 移除并返回列表最右端的值

    LINDEX 根据索引获取LIST中的值

    LRANGE 获取LIST中索引在指定范围内的值

    LTRIM 从LIST中删除索引不在指定范围内的值,这里的索引范围是闭区间

  • HASH

  •  

    命令作用

    HSET 向HASH表中添加元素,由上图可以看出HASH结构中存储的值也是一个键值对(field value)

    HMSET 一次向HASH表中写入多个键值对

    HGET 获取HASH中存储的值

    HMGET 一次从HASH中获取多个值

    HLEN 获取HASH表中存储的元素个数

    HDEL 删除HASH表中的键值对

    HEXISTS 判断HASH中是否包含指定field的键值对

    HKEYS 获取HASH中的所有键(field)

    HVALS 获取HASH中的所有值

    HGETALL 获取HASH中的所有键值对

    HINCRBY 将HASH中的指定value增加指定的数值

  • SET SET中没有重复元素,向SET中添加重复的数据只会存储一份。
  • 命令作用

    SADD 向SET中添加元素

    SREM 移除SET中的元素

    SISMEMBER 判断某元素是否存在于SET中

    SCARD 返回SET中的元素个数

    SMEMBERS 返回SET中的所有元素

    SSCAN 通过迭代的方式返回SET中的所有元素

    SMOVE 将元素从某一集(如果该元素存在当前集合中)合移动到另一集合并返回当前元素

    集合间运算

    命令作用

    SDIFF 对SET集合进行补集运算(存在于第一个集合且不存在于第二个集合中的元素)并返回运算结果

    SDIFFSTORE 对SET集合进行补集运算并将运算结果存储到一个新的SET集合中

    SINTER 对SET集合进行交集运算并返回运算结果

    SINTERSTORE 对SET集合进行交集运算并将运算结果存储到一个新的SET集合中

    SUNION 对SET集合进行并集运算并返回运算结果

    SUNIONSTORE 对SET集合进行并集运算并将运算结果存储到一个新的SET集合中

  • ZSET ZSET和SET一样,没有重复元素,但和SET相比它有排序功能。
  • 命令作用

    ZADD 向ZSET中添加元素

    ZREM 移除ZSET中的元素

    ZCARD 获取ZSET中元素的个数

    ZSCORE 获取ZSET中元素的score值

    ZRANK 获取ZSET中元素的索引

    ZREMRANGEBYRANK 从ZSET中移除指定索引范围内的元素

    ZREMRANGEBYSCORE 从ZSET中移除指定score范围内的元素

    ZCOUNT 获取ZSET中score值在指定范围内元素的个数

    ZRANGE 获取ZSET中索引在指定范围内的元素,ZRANGE key start stop,参数start=0且stop=-1时返回所有元素

    集合间运算

    命令作用

    ZINTERSTORE 对ZSET集合进行交集运算并将运算结果存储到一个新的ZSET集合中

    ZUNIONSTORE 对ZSET集合进行并集运算并将运算结果存储到一个新的ZSET集合中

    集合运算对于value值相同的集合元素score值的处理分为三种方式:

    执行ZINTERSTORE命令(ZUNIONSTORE与之类似):

  • 参数WEIGHTS表示权重,该参数比较复杂:

  • 参数WEIGHTS的个数和numkyes值相等

  • AGGREGATE值为SUM时,对于结果集中的某个value为a的元素B,参与运算的各个集合中value为a的元素的score值会分别和对应的WEIGHTS值相乘然后再将各自相乘结果相加作为结果集中元素B的score值

  • AGGREGATE值为MIN或MAX时,对于结果集中的某个value为a的元素B,参与运算的各个集合中value为a的元素中score值最小或最大的那个(若有多个,则按照命令行中指定集合的顺序自左向右取第一个符合条件的集合中的元素)和对应的WEIGHTS值相乘得到的值作为结果集中元素B的score值

  • 规则略复杂,自己动手写几遍就会明白了。ZINTERSTORE命令执行效果图:


     

    以下为进行集合运算的示意图:
    以对score求和的方式进行交集运算


     

    以取score中最小值的方式进行并集运算

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • 【AngularJS中的自定义服务service VS factory VS provider】---它们的区别,你知道

      【AngularJS中的自定义服务service VS factory VS provider】---它们

      2017-05-08 13:04

    • 记一次企业级爬虫系统升级改造(六):基于Redis实现免费的IP代理池 - 彩色铅笔

      记一次企业级爬虫系统升级改造(六):基于Redis实现免费的IP代理池

      2017-03-21 09:00

    • Session分布式共享 = Session + Redis + Nginx - 傲翼飞寒

      Session分布式共享 = Session + Redis + Nginx - 傲翼飞寒

      2017-03-10 16:00

    • HTML5中的新事件 - zxyGo

      HTML5中的新事件 - zxyGo

      2017-03-10 14:00

    网友点评
    c