• 解决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商品信息就可以了

  • 相关阅读:
    Linux下动态库生成和使用
    ELK日志平台
    zabbix 监控端口
    zabbix 分布式zabbix_proxy
    zabbix 邮件报警 监控mysql主从
    Kubernetes 本地仓库
    kubernetes ui 搭建
    Kubernetes K8s
    Dockerfile
    Docker 指定容量
  • 原文地址:https://www.cnblogs.com/itbole/p/5333891.html
Copyright © 2020-2023  润新知