zoukankan      html  css  js  c++  java
  • 解决Redis Cluster模式下的排序问题

    通常的redis排序我们可以这么做:

    比如按商品价格排序:sort goods_id_set by p_*_price

    这样在非集群模式下是没问题的,但如果在集群模式下,就会报错:

    说是在集群模式下不能用sort的by子句,因为在集群模式下,上面的p_*_price匹配的key可能分布在不同的节点的slot中,所以无法做到排序。

    那怎么办咧?别急,办法还是有的,我们就用 SortedSet

    怎么用呢?很简单,看代码:

    我们先添加几个商品,并赋上价格

    zadd goods_prices 10 1 //商品id为1,价格为10元

    zadd goods_prices 20 2 //商品id为2,价格为20元

    zadd goods_prices 15 3 // 商品id为3,价格为15元

    zadd goods_prices 5 4  // 商品id为4 价格为5元

    然后排序:

    1. zrange goods_prices 0,9999999 //按价格从低到高排序

    2. zrevrange goods_prices 0,9999999 //按价格从高到低排序

    打印结果:

    1.  4,1,3,2

    2.  2,3,1,4

    然后再通过这些id去get商品信息就可以了

  • 相关阅读:
    redis该怎么用
    cookie和session的比较
    web常见攻击
    请大神指导从大日志文件中统计关键字次数的办法
    apache中 MaxClients 与MaxRequestsPerChild
    如何提高缓存命中率
    CSU-ACM2018暑假集训比赛1
    CodeForces
    CodeForces
    CodeForces
  • 原文地址:https://www.cnblogs.com/itbole/p/5333891.html
Copyright © 2011-2022 走看看